16

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

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

如何只显示相关的日志?

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

谢谢 !

4

4 回答 4

5

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

于 2013-01-11T22:40:34.417 回答
4

编辑:水平线以上的一切都是我的新答案(更新于 13 年 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);
    }
}
于 2013-04-04T22:07:59.177 回答
1

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

按 PID 过滤

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

于 2012-09-15T15:33:24.543 回答
0

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

过滤窗口

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

于 2013-01-08T17:36:46.367 回答