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

16

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

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

如何仅显示相关的日志?

我不需要标签,因为我想查看来自JNI的异常抛出、Segfaults等。

谢谢!


请在此处为该功能投票:http://youtrack.jetbrains.com/issue/IDEA-95780 - loeschg
4个回答

5

在当前版本(12)的IntelliJ IDEA中,无法基于应用程序(包)进行过滤。


4
编辑:以下是我的新答案(更新于5/17/13): 我建议使用基于IntelliJ的新Android Studio IDE。这允许按包名称进行过滤。
您可以在此处投票以添加该功能: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);
    }
}

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

Filter by PID

唯一的缺点是PID会发生变化,每次应用程序重新启动后都需要调整过滤器。

1
如何获取PID - jAckOdE
3
晚了些回复,但对其他人有所帮助。你可以在Android DDMS面板中看到数字“packagename(12334)”,其中数字12334是PID。无论如何,每次调试时配置PID过滤器都太麻烦了。 - Youngjae

0

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

Filter window

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接