如何在 IntelliJ 的 logcat 中仅过滤我的应用程序日志? [复制]

Posted

技术标签:

【中文标题】如何在 IntelliJ 的 logcat 中仅过滤我的应用程序日志? [复制]【英文标题】:How to filter only my application log in IntelliJ's logcat? [duplicate] 【发布时间】:2012-09-15 10:00:57 【问题描述】:

在 IntelliJ 上,我正在尝试读取 logcat 以查找错误。

问题是所有应用程序的日志都出现在“android”窗口中。

如何只显示相关的日志?

我不是在寻找标签,因为我想查看异常抛出、来自 JNI 的 Segfaults 等。

谢谢!

【问题讨论】:

在这里为该功能投票:youtrack.jetbrains.com/issue/IDEA-95780 【参考方案1】:

基于应用程序(包)的过滤在 IntelliJ IDEA(当前版本:12)中不可用。

【讨论】:

【参考方案2】:

编辑:水平线上方的所有内容都是我的新答案(2013 年 5 月 17 日更新):

我建议转到新的Android Studio IDE(基于 IntelliJ)。这允许按包名称过滤。


您可以在此处投票支持要添加的功能:http://youtrack.jetbrains.com/issue/IDEA-95780

与此同时,您可能会考虑包装 Android Log 类以添加一个后缀/前缀,然后您可以通过该后缀/前缀进行过滤。类似于以下内容:

/**
 * Wrapper for the Android @link Log class.
 * <br><br>
 * The primary reason for doing this is to add a unique prefix to all tags for easier filtering
 * in IntelliJ IDEA (since in v12 there is no way to filter by application).
 *
 * @author gloesch
 */
public class Logger 

    private static final String FILTER = "(MY APP) ";

    public static void d(String tag, String message) 
        Log.d(tag.concat(FILTER), message);
    

    public static void i(String tag, String message) 
        Log.i(tag.concat(FILTER), message);
    

    public static void v(String tag, String message) 
        Log.v(tag.concat(FILTER), message);
    

    public static void e(String tag, String message) 
        Log.e(tag.concat(FILTER), message);
    

    public static void w(String tag, String message) 
        Log.w(tag.concat(FILTER), message);
    

    public static void wtf(String tag, String message) 
        Log.wtf(tag.concat(FILTER), message);
    

【讨论】:

【参考方案3】:

您可以按进程 ID (PID) 进行过滤:

唯一的缺点是 PID 会发生变化,您必须在每次应用重启后调整过滤器。

【讨论】:

如何获得 PID @jAckOdE // 回答较晚,但对其他人有帮助,您可以在 Android DDMS 面板packagename (12334) 中看到数字,其中数字 12334 是 PID。反正调试的时候每次都配置PID过滤器太难受了。【参考方案4】:

取决于你想要做什么。在 logcat 窗口中,您应该有一个名为“Filters”的 [非] 空窗口,旁边有一个 +-(如 IntelliJ IDEA 12 中所示),它会弹出一个如下窗口:

如果日志标签不是您需要的,您可以根据日志消息本身中的正则表达式进行过滤(例如,如果消息始终以 seek error 开头,则输入 seek 应该会找到它。如果您将日志级别设置为详细,它应该与写入 logcat 的任何内容相匹配。

【讨论】:

以上是关于如何在 IntelliJ 的 logcat 中仅过滤我的应用程序日志? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

intellij logcat 仅显示 json 对象“[object]”,如何显示整个 json 对象?

在 intellij 中更改 logcat 颜色 ... BUG?

IntelliJ 9 和 Android - 过滤 LogCat

IntelliJ 9和Android - 过滤LogCat

Android:Logcat 在 Intellij IDEA 中不显示任何内容

排除 IntelliJ / LogCat 中的某些 Log.i 消息?