logcat命令介紹

1.android log系統

image

 

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.緩衝區模型

image

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.例子

image

五、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"

  • 本文爲博主學習筆記,未經博主允許不得轉載
  • 本文僅供交流學習,請勿用於非法途徑
  • 本文僅是個人意見,如有想法,歡迎拍磚
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章