Android adb logcat 命令查看日誌詳細介紹_Android

來源:互聯網
上載者:User

Android 開發的程式員開發程式的時候,一定為log而苦惱過吧。Eclipse老是Log找不到,是不是很讓人不爽,雖然Android Studio的Logcat功能很不錯,但也沒有在命令列terminal中列印出來更方便。

使用 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): Starting activity: Intent { action=android.intent.action...}

    如果想要減少輸出的內容,可以加上過濾器運算式進行限制,過濾器可以限制系統只輸出感興趣的標記-優先順序組合。

    過濾器運算式的格式是tag:priority ... ,其中tag是標記, priority是最小的優先順序, 該標記標識的所有大於等於指定優先順序的訊息被寫入日誌。也可以在一個過濾器運算式中提供多個這樣的過濾,它們之間用空格隔開。

    下面給出的例子是僅輸出標記為“ActivityManager”並且優先順序大於等於“Info”和標記為“MyApp”並且優先順序大於等於“Debug”的日誌:

adb logcat ActivityManager:I MyApp:D *:S

    上述運算式最後的 *:S 用於設定所有標記的日誌優先順序為S,這樣可以確保僅有標記為“View”(譯者註:應該為ActivityManager,原文可能是筆誤)和“MyApp”的日誌被輸出,使用 *:S 是可以確保輸出符合指定的過濾器設定的一種推薦的方式,這樣過濾器就成為了日誌輸出的“白名單”。

    下面的表達是顯示所有優先順序大於等於“warning”的日誌:

adb logcat *:W

    如果在開發用電腦上運行 logcat (相對於運行運程shell而言),也可以通過ANDROID_LOG_TAGS環境變數設定預設的過濾器運算式:

export ANDROID_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卡

感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.