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結束
adb logcat 通過包名過濾日誌並輸出到txt文件