如何在adb logcat日志中添加包名并筛选特定应用的日志?
筛选特定应用adb logcat日志的实现方案
方案1:Android 7.0+ 直接按包名筛选(优先使用)
新版adb已经原生支持按包名过滤日志,Windows cmd中直接执行以下命令即可,不需要额外处理:adb logcat --package 替换为你的应用包名
方案2:通过PID筛选(全Android版本兼容)
如果你的adb版本较低不支持--package参数,可以通过应用的运行PID筛选,同一包名的运行中应用同一时间只会对应一个PID:
- 先查询目标应用的PID,cmd执行:
adb shell pidof 替换为你的应用包名
执行后返回的数字就是当前应用的PID - 用PID过滤日志:
adb logcat --pid 替换为上一步查到的PID
如果需要一步执行不需要手动复制PID,在cmd中直接使用组合命令:
for /f %i in ('adb shell pidof 替换为你的应用包名') do adb logcat --pid %i
如果把命令写入.bat批处理文件使用,需要把命令中的%i改为%%i
补充说明
之前adb logcat | findstr 包名失效的原因是logcat原始输出默认不带包名字段,Android Studio显示的包名是工具自身通过PID和系统包名映射关系额外补充的字段,不是从日志原始输出中读取的,所以直接匹配包名只能命中刚好包含包名字符串的日志内容或标签。
内容的提问来源于stack exchange,提问作者Tsebi
相关产品推荐
相关产品推荐

