1. 程式人生 > >adb logcat 通過包名過濾日誌並輸出到txt文件

adb logcat 通過包名過濾日誌並輸出到txt文件

echo 連接 錯誤 www. tps off err 打印 打印日誌

最近學使用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文件