adb log 命令介紹
1.android log系統
2.logcat介紹
logcat是android中的一個命令列工具,可以用於得到程式的log資訊
log類是一個日誌類,可以在程式碼中使用logcat打印出訊息
- 常見的日誌紀錄方法包括:
方法 |
描述 |
v(String,String) (vervbose) | 顯示全部資訊 |
d(String,String)(debug) | 顯示除錯資訊 |
i(String,String)(information) | 顯示一般資訊 |
w(String,String)(waning) | 顯示警告資訊 |
e(String,String)(error) | 顯示錯誤資訊 |
例如:
//開發過程中獲取log Log.i("MyActivity","MyClass.getView() - get item number"+position); //adb獲取log adb logcat
adb logcat輸出的日誌格式如下:
I/ActivityManager( 1754): Waited long enough for: ServiceRecord{2b24178c u0 com.google.android.gms/.checkin.CheckinService}
3.logcat命令格式
語法格式:
[adb] logcat [<option>] … [<filter – spec>] …
PC端使用:
adb logcat
shell模式下使用:
logcat
二、logcat緩衝區
1.緩衝區介紹
android log輸出量巨大,特別是通訊系統的log,因此,android把log輸出到不同的緩衝區中,目前定義了四個log緩衝區:
1)Radio:輸出通訊系統的log
2)System:輸出系統元件的log
3)Event:輸出event模組的log
4)Main:所有java層的log,遺蹟不屬於上面3層的log
緩衝區主要給系統元件使用,一般的應用不需要關心,應用的log都輸出到main緩衝區中
預設log輸出(不指定緩衝區的情況下)是輸出System和Main緩衝區的log
2.緩衝區模型
3.獲取緩衝區命令
引數 |
描述 |
-b<buffer> | 載入一個可使用的日誌緩衝區提供檢視,預設值是main |
4.例項
adb logcat –b radio
adb logcat –b system
adb logcat –b events
adb logcat –b main
三、logcat命令引數
1.引數說明
引數 |
描述 |
-b <buffer> | 載入一個可使用的日誌緩衝區供檢視,比如event和radio。預設值是main |
-c | 清除緩衝區中的全部日誌並退出(清除完後可以使用-g檢視緩衝區) |
-d | 將緩衝區的log轉存到螢幕中然後退出 |
-f <filename> | 將log輸出到指定的檔案中<檔名>.預設為標準輸出(stdout) |
-g | 列印日誌緩衝區的大小並退出 |
-n <count> | 設定日誌的最大數目<count>,預設值是4,需要和-r選項一起使用 |
-r <kbytes> | 沒<kbytes>時輸出日誌,預設值是16,需要和-f選項一起使用 |
-s | 設定過濾器 |
-v <format> | 設定輸出格式的日誌訊息。預設是短暫的格式。支援的格式列表 |
一般長時間輸出log的話建議-f,-n,-r三個引數連用,這樣當一個檔案日誌輸出滿了之後可以馬上在另一箇中進行輸出
2.例項
//將緩衝區的log列印到螢幕並退出 adb logcat -d //清除緩衝區log(testCase執行前可以先清除一下) adb logcat -c //列印緩衝區大小並退出 adb logcat -g //輸出log adb logcat -f /data/local/tmp/log.txt -n 10 -r 1
四、logcat格式化輸出
1.引數說明
日誌訊息包含一個元資料欄位,除了標籤和優先順序,您可以修改輸出顯示一個特定的元資料欄位格式的訊息。為此,您使用-v選項來指定一個支援的輸出格式。一下為支援的格式:
格式 |
說明 |
brief | 顯示優先順序/標記和過程的PID發出的訊息(預設格式) |
process | 只顯示PID |
tag | 只顯示優先順序/標記 |
raw | 顯示原始的日誌訊息,沒有其他元資料欄位 |
time | 呼叫顯示日期、時間、優先順序/標籤和過程的PID發出訊息 |
threadtime | 呼叫顯示日期、時間、優先順序、標籤遺蹟PID TID執行緒發出的訊息 |
long | 顯示所有元資料欄位與空白行和單獨的訊息 |
當logcat開始,指定想要輸出格式-v選項:
[adb] logcat [-v <format>]
adb logcat –v thread
只能指定一個輸出格式-v
2.例子
五、logcat優先順序
1.優先順序語法
優先順序使用字元標識,一下優先順序從低到高
V –Verbose(最低優先順序)
D – Debug
I – Info
W – Warning
E – Error
F – Fatal
S – Silent
為了減少不想要日誌的輸出,可以建立一個過濾器
過濾語法:tag:priority
//過濾TAG為ActivityManager輸出級別大於I的日誌與TAG為MyApp輸出級別大於D的日誌 adb logcat ActivityManager:I My App:D *:S
adb logcat *:W
設定過濾級別為W以上
如果用的比較多可以設定環境變數:
export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D*:S"