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

时间:2012-09-15 10:00:58

标签: android intellij-idea logcat

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

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

如何仅显示相关的日志?

我不是在寻找标签因为我想查看Exception throws,来自JNI的Segfaults等等。

谢谢!

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

编辑:水平线以上的所有内容都是我的新答案(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);
    }
}

答案 2 :(得分:1)

您可以按进程ID(PID)进行筛选:

Filter by PID

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

答案 3 :(得分:0)

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

Filter window

如果日志标记不是您需要的,您可以根据日志消息本身的正则表达式进行过滤(例如,如果消息始终以seek error开头,则输入seek,它应该如果你将Log Level设置为Verbose,它应匹配任何写入logcat的东西。