adb logcat 通过包名过滤日志并输出到txt文件

最近学使用ADB命令抓包APP闪退的日志;

1)在cmd命令行中可以使用adb logcat 命令查看android系统的log,也可以使用adb shell进入到adb shell专用命令行

2)dos窗口可以直接输入log,或定向输出到txt文件;

3)按ctrl+c中断输入log记录;

android输出的每一条日志都有一个标记和优先级与其关联。

优先级是下面的字符,顺序是从低到高:
V — 明细 verbose(最低优先级)
D — 调试 debug
I — 信息 info
W — 警告 warn
E — 错误 error
F — 严重错误 fatal
S — 无记载 silent

具体每个命令的使用方法,可以查看:https://www.cnblogs.com/mgzc-1508873480/p/7116207.html

本次的重点:

1.如果要过滤特定级别日志,使用如下命令:

adb logcat *:W   //显示所有优先级大于等于“warning”的日志

2.添加包名过滤日志:

在adb的目录下添加两个文件getpid.bat和getpid1.bat:

1.getpid.bat

@echo off
adb shell "ps | grep xxx"

其中“xxx”是包名

2.getpid1.bat

方法1:直接在cmd里面打印日志;日志无过滤

@echo off
for /f  "tokens=2 delims= " %%i in ('getpid.bat') do set pid=%%i
echo %pid%
adb logcat | find  "%pid%"
pause

方法2:直接在cmd里面打印日志;日志过滤;如过滤E及E级别以上日志;

@echo off
for /f  "tokens=2 delims= " %%i in ('getpid.bat') do set pid=%%i
echo %pid%
adb logcat *:E | find  "%pid%"
pause

也可以方法2上修改加入定向输出到txt文件:adb logcat *:E | find  "%pid%" > MYAPP1.txt

运行方式:

1.连接好手机;在cmd中输入adb devices,检测设备是否正常连接;

PS:连接不正常,可以参考如下博文:https://www.cnblogs.com/sxming/p/7928361.html

2.双击getpid1.bat运行; 然后打开要抓取日志的APP

3.最后ctrl+c结束

 

 

 

 

 

原文地址:https://www.cnblogs.com/slowlysnail/p/8394937.html