Android logcat命令詳解


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM