所以在Eclipse中,你可以使用app:com.foo进行过滤,它会得到com.foo,com.foo.bar,com.foo.baz等......
有没有办法在命令行上执行此操作?
答案 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
答案 3 :(得分:0)
对于Windows用户(linux有更好的方式按照其他人的说法去做),我编写了一个简单的python脚本来过滤应用程序的logcat输出。