我观察到,当我使用Logcat Eclipse ADT for Android时,我也从许多其他应用程序获得消息。是否有一种方法来过滤这个,只显示来自我自己的应用程序的消息。


当前回答

5月17日更新

几年过去了,情况变了。Eclipse也不再受官方支持。这里有两种最新的方法:

1. Android工作室

在Android监视器工具箱中,您可以根据可调试进程过滤logcat。通常,当您开发应用程序时,它是一个可调试的过程。每隔一段时间我就会遇到这样的问题,然后我就会这样做:

工具-> Android ->启用ADB集成。 如果它已经启用,那么将其关闭,然后再打开 拔下移动设备的电源插头。

还有通过正则表达式和调试级别进行过滤的选项

2. logcat-color

如果你想使用基于终端的解决方案,这是adb logcat之上的一个漂亮的python包装器。这样做的好处是您可以保存多个配置并简单地重用它们。通过标记进行筛选非常可靠。你也可以过滤包只看到一个或多个应用程序的日志,但你启动logcat-color在启动你的应用程序之前。

旧的回答:

似乎我不能评论之前的答案,所以我将发布一个新的。 这是对Tom Mulcahy的回答的评论,说明了该命令应该如何更改,以便在大多数设备上工作,因为adb shell ps PID列是可变的。

注意:下面的命令适用于连接了许多设备的情况。所以需要设备id。否则,可以简单地省略括号'[',']'

1. 要找出pid的列,输入:

adb [-s DEVICE_ID] shell ps | head -n 1

现在记住PID的列号。编号从1开始。

2. 然后输入以下内容:

adb [-s DEVICE_ID] logcat | grep $(adb [-s DEVICE_ID] shell ps \
| grep "com.example" | awk -F" " ' {print $PUT_COLUMN_HERE}')

简单地把你记住的列放在PUT_COLUMN_HERE中,例如$5

警告

每次重新运行应用程序时,都必须重新运行第二个命令,因为应用程序从操作系统获得了一个新的PID。

其他回答

添加过滤器

指定名称

选择你的过滤器。

Ubuntu: adb logcat -b all -v color——pid= ' adb shell pidof -s com。packagename '与颜色和连续日志的应用程序

您可以使用下面的命令为您的应用程序包获取详细日志

Adb logcat com.example。myapp: V *: S

另外,如果你已经推出了你的应用程序,你想从发布的应用程序中获取错误日志,你可以使用以下命令。

adb logcat AndroidRuntime:E *:S

我不确定是否有一种方法只能看到关于你的应用程序的系统消息,但你可以基于字符串进行过滤。如果在程序中执行日志,则可以只包含某个惟一的关键字,并基于该关键字进行筛选。

包的名称保证是唯一的,所以你可以使用Log功能与标签作为你的包的名称,然后过滤包的名称:

注意:从构建工具21.0.3开始,这将不再有效,因为标签被限制为23个字符或更少。

日志。<日志级别>("<您的包名>","message");

adb -d logcat <您的包名>:<日志级别> *:S

-d表示实际设备,-e表示模拟器。如果有多个模拟器正在运行,您可以使用-s emulator-<模拟器编号>(例如,-s emulator-5558)

例如:adb -d logcat com.example。例子:我*:S

或者,如果您使用System.out.print将消息发送到日志中,则可以使用adb -d logcat System。out:I *:S只显示对System.out的调用。

您可以在这里找到所有日志级别和更多信息:https://developer.android.com/studio/command-line/logcat.html

http://developer.android.com/reference/android/util/Log.html

编辑:看起来我有点操之过急了,刚刚才意识到您在问Eclipse中的logcat。我上面发布的是如何从命令行通过adb使用logcat。我不确定相同的过滤器是否可以转移到Eclipse中。