常用的log日志命令:
1:打印默認(rèn)日志數(shù)據(jù)
adb logcat
2:需要打印日志詳細(xì)時間的簡單數(shù)據(jù)
adb logcat -v time
3:需要打印級別為Error的信息
adb logcat *:E
4:需要打印時間和級別是Error的信息
adb logcat -v time *:E
5:將日志保存到電腦固定的位置,比如D:\log.txt
adb logcat -v time >D:\log.txt
過濾日志的幾種方式:
清除日志緩沖區(qū):
logcat 有緩存,如果僅需要查看當(dāng)前開始的 log,需要清空之前的。
$ adb locat -c根據(jù)日志優(yōu)先級過濾日志
$ adb logcat *:#
Log日志級別:
V: 詳細(xì)日志(默認(rèn))
D: 調(diào)試信息
I :正常使用時的日志信息
W: 警告
E:錯誤
F:運(yùn)行時發(fā)生的致命錯誤
所有的優(yōu)先級都自動包括比它高的優(yōu)先級,因此 adb logcat *:W包括警告、錯誤、致命信息。根據(jù)標(biāo)簽過濾日志
第2條中的根據(jù)日志優(yōu)先級過濾日志通常是跟標(biāo)簽一起使用。
語法:adb logcat <tag>[:priority]
(tag表示標(biāo)簽,priority輸出的級別)
adb logcat :W,其實(shí)可以是某個tag,如果沒有指明,就表示所有。
例子:Log.w("Test", info );
這句打印通過標(biāo)簽和優(yōu)先級過濾命令是:adb logcat Test:I
注意:
(1)可以指定多個[TAG:LEVEL ]
(2) level : S 表示為不輸出該標(biāo)簽的日志,應(yīng)為沒有大于S級別的日志了
(3)[TAG:LEVEL ] 不會影響其他標(biāo)簽的日志, 所以如果要屏蔽其他log請使用 :S
(4)網(wǎng)上有網(wǎng)友說使用tag標(biāo)簽命令,并沒有成功過濾。并且使用tag后,后面的級別也無效了,所以tag使用號比較保險。
- 采用grep正則表達(dá)式過濾
(1)只輸出需要的內(nèi)容,例如:簡單的匹配一行當(dāng)中的某個字符串
adb logcat | grep MyApp
adb logcat | grep -i myapp #忽略大小寫。
adb logcat | grep --color=auto -i myapp #設(shè)置匹配字符串顏色
(2)顯示同一個進(jìn)程的所有輸出
adb logcat | grep –color=auto $pid
Logcat命令列表:
-d 將日志顯示在控制臺后退出
-c 清理已存在的日志
-f <filename> 將日志輸出到文件(把日志輸出到手機(jī)指定目錄)
adb logcat -f /sdcard/test.txt
-v <format>設(shè)置日志輸入格式控制輸出字段,默認(rèn)的是brief格式
如果需要的是普通日志那么使用-v time就可以了,
如果需要查看線程區(qū)別使用 -v threadtime就可以了,其他日志基本也是少用的。
brief — 顯示優(yōu)先級/標(biāo)記和原始進(jìn)程的PID (默認(rèn)格式)
process — 僅顯示進(jìn)程PID
tag — 僅顯示優(yōu)先級/標(biāo)記
thread — 僅顯示進(jìn)程:線程和優(yōu)先級/標(biāo)記
raw — 顯示原始的日志信息,沒有其他的元數(shù)據(jù)字段
time — 顯示日期,調(diào)用時間,優(yōu)先級/標(biāo)記,PID
long —顯示所有的元數(shù)據(jù)字段并且用空行分隔消息內(nèi)容
adb logcat -v thread //使用 thread 輸出格式
注意-v 選項(xiàng)中只能指定一種格式。
-b <buffer>加載一個可使用的日志緩沖區(qū)供查看,默認(rèn)值是main。
radio — 查看包含在無線/電話相關(guān)的緩沖區(qū)消息
events — 查看事件相關(guān)的消息
main — 查看主緩沖區(qū) (默認(rèn)緩沖區(qū))
adb logcat -b radio //查看radio緩沖區(qū)