天天看點

adb檢視日志LOGCAT

adb檢視日志LOGCAT 發表于126 天前 ⁄ 程式設計開發 ⁄ 暫無評論

使用logcat指令

檢視和跟蹤系統日志緩沖區的指令logcat的一般用法是:

[adb]logcat [<option>]...[<filter-spec>]...      

下文介紹過濾器和指令選項,詳細内容可參見Listing of logcat Command Options。

可以在開發機中通過遠端shell的方式使用logcat指令檢視日志輸出:

$ adb logcat      

如果是在遠端shell中可直接使用指令:

# logcat      

過濾日志輸出

每一條日志消息都有一個标記和優先級與其關聯。

  • 标記是一個簡短的字元串,用于辨別原始消息的來源(例如"View"來源于顯示系統)。
  • 優先級是下面的字元,順序是從低到高:
  • V—明細(最低優先級)
  • D—調試
  • I—資訊
  • W—警告
  • E—錯誤
  • F—嚴重錯誤
  • S—無記載(最高優先級,沒有什麼會被記載)

通過運作logcat,可以獲得一個系統中使用的标記和優先級的清單,觀察清單的前兩列,給出的格式是<priority>/<tag>。

這裡是一個日志輸出的消息,優先級是“I”,标記是“ActivityManager”:

I/ActivityManager(585):Startingactivity:Intent{action=android.intent.action...}      

如果想要減少輸出的内容,可以加上過濾器表達式進行限制,過濾器可以限制系統隻輸出感興趣的标記-優先級組合。

過濾器表達式的格式是tag:priority ...,其中tag是标記,priority是最小的優先級,該标記辨別的所有大于等于指定優先級的消息被寫入日志。也可以在一個過濾器表達式中提供多個這樣的過濾,它們之間用空格隔開。

下面給出的例子是僅輸出标記為“ActivityManager”并且優先級大于等于“Info”和标記為“MyApp”并且優先級大于等于“Debug”的日志:

adb logcatActivityManager:IMyApp:D*:S

上述表達式最後的

*:S

用于設定所有标記的日志優先級為S,這樣可以確定僅有标記為“View”(譯者注:應該為ActivityManager,原文可能是筆誤)和“MyApp”的日志被輸出,使用

*:S

是可以確定輸出符合指定的過濾器設定的一種推薦的方式,這樣過濾器就成為了日志輸出的“白名單”。

下面的表達是顯示所有優先級大于等于“warning”的日志:

adb logcat*:W

如果在開發用電腦上運作

logcat

(相對于運作運程shell而言),也可以通過

ANDROID_LOG_TAGS

環境變量設定預設的過濾器表達式:

exportANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"

需要注意的是,如果是在遠端shell或是使用

adb shell logcat

指令運作

logcat

ANDROID_LOG_TAGS

不會導出到模拟器或手機裝置上。

控制日志格式

日志消息在标記和優先級之外還有很多中繼資料字段,這些字段可以通過修改輸出格式來控制輸出結果,

-v

選項加上下面列出的内容可以控制輸出字段:

  • brief—顯示優先級/标記和原始程序的PID (預設格式)
  • process—僅顯示程序PID
  • tag—僅顯示優先級/标記
  • thread—僅顯示程序:線程和優先級/标記
  • raw—顯示原始的日志資訊,沒有其他的中繼資料字段
  • time—顯示日期,調用時間,優先級/标記,PID
  • long—顯示所有的中繼資料字段并且用空行分隔消息内容

可以使用

-v

啟動

logcat

來控制日志格式:

[adb]logcat [-v <format>]      

例如使用

thread

輸出格式:

adb logcat -v thread      

注意隻能在

-v

選項中指定一種格式。

Viewing Alternative Log Buffers

Android日志系統為日志消息保持了多個循環緩沖區,而且不是所有的消息都被發送到預設緩沖區,要想檢視這些附加的緩沖區,可以使用

-b

選項,以下是可以指定的緩沖區:

  • radio—檢視包含在無線/電話相關的緩沖區消息
  • events—檢視事件相關的消息
  • main—檢視主緩沖區(預設緩沖區)

-

b選項的用法:

[adb]logcat [-b <buffer>]      

例如檢視radio緩沖區:

adb logcat -b radio      

adb logcat簡單舉例:

1、導入日志到sd卡

adb檢視日志LOGCAT
下一篇: Java Rebot類