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


当前回答

包的名称保证是唯一的,所以你可以使用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中。

其他回答

Windows CMD

例如,如果您的应用程序包名称为:com.nader.chat

cd C:\Users\[your-username]\AppData\Local\Android\Sdk\platform-tools
adb shell logcat *:E | findstr /c:"at com.nader.chat"

:E只是过滤日志中的错误,你可以替换为V:详细(最低优先级),D:调试,I:信息,W:警告,F:致命。 在发现错误只是在你写的源代码,而不是其他相关的模块

如果您正在使用Eclipse,请在下面的logCat窗口中按下绿色+号,并将您的包名称(com.example.yourappname)放在按应用程序名称框中。此外,在“筛选器名称”框中选择任何适合您的名称,然后单击“确定”。当从logCat的左窗格中选择刚才添加的筛选器时,您将只看到与应用程序相关的消息。

这适用于我的USB调试:

解决方案是通过shell直接使用您的设备自己的logcat。

连接设备并使用: 亚行壳 在shell设置完成后使用logcat: Logcat | grep com.yourapp.packagename

我通常会在日志消息中添加一些内容以使其与众不同。或者以unity app为例,你可以使用“unity”作为匹配字符串。

对于mac:

adb logcat | grep "MyUniqueString" 

Windows (powershell):

adb logcat | Select-String "MyUniqueString"

对于windows,你可以使用我的PowerShell脚本只为你的应用程序显示消息: https://github.com/AlShevelev/power_shell_logcat