一、Log分類:Android日志主要分為kernel荔睹、radio萝毛、event项阴、main這四種log。
1笆包、kernel log
kernel log屬于Linux內(nèi)核的log 环揽,可以通過(guò)讀取/proc/kmsg或者通過(guò)串口來(lái)抓取。
adb 抓取kernel log的命令如下(需要有root權(quán)限):
adb shell cat /proc/kmsg > e://kernel.log
2庵佣、radio log
-抓取Android RIL層 log歉胶,在調(diào)試Android通信方面的代碼時(shí),這個(gè)Log非常關(guān)鍵巴粪。抓取命令如下:
adb logcat -b radio >e://radio.log
3通今、main log
main log和我們?cè)趀clipse里通過(guò)DDMS中看到的log是一致的粥谬。抓取命令如下:
adb logcat -b main >e://main.log
4、event Log
event log屬于system log辫塌,平時(shí)可以跟在main log之后漏策。抓取命令如下:
adb logcat -b event -v time > e://event.log? ? (-v time表示在log中加入每條log發(fā)生的時(shí)間)
5、完整Log
adb logcat -b選項(xiàng)是可以復(fù)用的臼氨,因此我們抓取所有Log的命令就是復(fù)用了-b選項(xiàng)掺喻。抓取命令如下:
adb logcat -b main -b system -b radio -b events -v time > e://all.log
6、android輸出的每一條日志都有一個(gè)標(biāo)記和優(yōu)先級(jí)與其關(guān)聯(lián)一也。
優(yōu)先級(jí)是下面的字符巢寡,順序是從低到高:
V — 明細(xì) verbose(最低優(yōu)先級(jí))
D — 調(diào)試 debug
I — 信息 info
W — 警告 warn
E — 錯(cuò)誤 error
F — 嚴(yán)重錯(cuò)誤 fatal
S — 無(wú)記載 silent
二、過(guò)濾log
1椰苟、清除緩存的log信息
adb logcat -c
2抑月、使用I,V,D,E,F,W 等過(guò)濾
adb logcat *:I? ? //顯示所有優(yōu)先級(jí)大于等于“info”的日志
adb logcat *:V//顯示所有優(yōu)先級(jí)大于等于“verbose”的日志
adb logcat ActivityManager:I? *:S? //僅輸出標(biāo)記為“ActivityManager”且優(yōu)先級(jí)大于等于“Info”的日志
3、分類展示
adb logcat -s papaya? //顯示 papaya 的日志信息
adb logcat -v tag? //按照標(biāo)簽來(lái)打印日志信息
adb logcat -v thread? // 顯示 I,D,E等日志類型的進(jìn)程ID舆蝴、線程ID
4谦絮、grep 過(guò)濾(windows 可用find代替)
adb logcat | grep PID? //根據(jù)進(jìn)程id來(lái)過(guò)濾
adb logcat | grep -i myapp? //根據(jù)字符串來(lái)過(guò)濾,并忽略大小寫
adb logcat | grep "^..MyApp"? //僅匹配 tag 過(guò)濾洁仗, tag 是一行開頭的第三個(gè)字符開始