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


当前回答

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:致命。 在发现错误只是在你写的源代码,而不是其他相关的模块

其他回答

这适用于我的USB调试:

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

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

在Windows 10上,使用Ionic,对我来说最有效的是将“findstr”与所有应用程序消息生成的“INFO:CONSOLE”结合起来。 所以,我在命令行中的命令是:

adb logcat | findstr INFO:CONSOLE

除了Tom Mulcahy的回答,如果你想在Windows的控制台上通过PID进行过滤,你可以创建一个像这样的批处理文件:

@ECHO OFF

:: find the process id of our app (2nd token)
FOR /F "tokens=1-2" %%A IN ('adb shell ps ^| findstr com.example.my.package') DO SET PID=%%B

:: run logcat and filter the output by PID
adb logcat | findstr %PID%

这已经为我工作在git bash:

$ pid=$(adb shell ps | grep <package name> | cut -c11-15) ; adb logcat | grep $pid

对我来说,这适用于mac终端 找到你有adb的文件夹,然后在终端中键入下面的命令

./adb logcat MyTAG:V AndroidRuntime:E *:S

这里它将过滤MyTAG和AndroidRuntime的所有日志