如何使用logcat命令行按应用程序名称通配符过滤

时间:2014-11-08 02:11:56

标签: android command-line android-logcat

所以在Eclipse中,你可以使用app:com.foo进行过滤,它会得到com.foo,com.foo.bar,com.foo.baz等......

有没有办法在命令行上执行此操作?

4 个答案:

答案 0 :(得分:2)

参考:http://developer.android.com/tools/debugging/debugging-log.html

从命令行,您可以按标记和级别过滤logcat消息。例如

adb logcat MyApplicationTag:I *:S

将使用" MyApplicationTag"显示所有消息。标签,在INFO级别(注意":I")或以上。 " *:S"沉默所有其他信息。

==================================

显示来自多个标签的消息:

adb logcat MyApplicationTag:I com.foo.bar:I com.foo.baz:I *:S

==================================

要完成最初要求的内容(通过通配符规范进行过滤),您可以简单地让shell进行过滤。请尝试以下方法:

adb logcat | grep ^./com\.foo*

答案 1 :(得分:2)

是的!

除了Tom Mulcahy的解决方案之外,您还可以进一步简化它,如下所示:

alias logcat="adb logcat | grep `adb shell ps | egrep '\bcom.your.package.name\b' | cut -c10-15`"

使用方法与普通别名一样简单。只需在shell中输入命令:

logcat

别名设置使它变得更方便。正则表达式使得它对多进程应用程序具有可靠性,假设您只关心主进程。

您可以根据需要为每个流程设置更多别名。 :)

此外,如果要设置日志记录级别,则为

alias logcat-w="adb logcat *:W | grep `adb shell ps | egrep '\bcom.your.package.name\b' | cut -c10-15`"

答案 2 :(得分:1)

如果你愿意在eclipse之外做这个并且你在Mac上,你可以在LogRabbit中这样做

app CONTAINS[cd] "com.foo"

您可以在此处找到更多信息:http://lograbbit.com

enter image description here

  • 完全披露我是LogRabbit的创建者。*

答案 3 :(得分:0)

对于Windows用户(linux有更好的方式按照其他人的说法去做),我编写了一个简单的python脚本来过滤应用程序的logcat输出。

Link to github