Android adb logcat 命令查看日志詳細(xì)介紹
Android 開(kāi)發(fā)的程序員開(kāi)發(fā)程序的時(shí)候,一定為log而苦惱過(guò)吧。Eclipse老是Log找不到,是不是很讓人不爽,雖然Android Studio的Logcat功能很不錯(cuò),但也沒(méi)有在命令行terminal中打印出來(lái)更方便。
使用 logcat 命令
查看和跟蹤系統(tǒng)日志緩沖區(qū)的命令logcat的一般用法是:
[adb] logcat [<option>] ... [<filter-spec>] ...
下文介紹過(guò)濾器和命令選項(xiàng),詳細(xì)內(nèi)容可參見(jiàn)Listing of logcat Command Options。
可以在開(kāi)發(fā)機(jī)中通過(guò)遠(yuǎn)程shell的方式使用logcat命令查看日志輸出:
$ adb logcat
如果是在遠(yuǎn)程shell中可直接使用命令:
# logcat
過(guò)濾日志輸出
每一條日志消息都有一個(gè)標(biāo)記和優(yōu)先級(jí)與其關(guān)聯(lián)。
標(biāo)記是一個(gè)簡(jiǎn)短的字符串,用于標(biāo)識(shí)原始消息的來(lái)源 (例如"View" 來(lái)源于顯示系統(tǒng))。
優(yōu)先級(jí)是下面的字符,順序是從低到高:
V — 明細(xì) (最低優(yōu)先級(jí))
D — 調(diào)試
I — 信息
W — 警告
E — 錯(cuò)誤
F — 嚴(yán)重錯(cuò)誤
S — 無(wú)記載 (最高優(yōu)先級(jí),沒(méi)有什么會(huì)被記載)
通過(guò)運(yùn)行l(wèi)ogcat ,可以獲得一個(gè)系統(tǒng)中使用的標(biāo)記和優(yōu)先級(jí)的列表,觀察列表的前兩列,給出的格式是<priority>/<tag>。
這里是一個(gè)日志輸出的消息,優(yōu)先級(jí)是“I”,標(biāo)記是“ActivityManager”:
I/ActivityManager( 585): Starting activity: Intent { action=android.intent.action...}
如果想要減少輸出的內(nèi)容,可以加上過(guò)濾器表達(dá)式進(jìn)行限制,過(guò)濾器可以限制系統(tǒng)只輸出感興趣的標(biāo)記-優(yōu)先級(jí)組合。
過(guò)濾器表達(dá)式的格式是tag:priority ... ,其中tag是標(biāo)記, priority是最小的優(yōu)先級(jí), 該標(biāo)記標(biāo)識(shí)的所有大于等于指定優(yōu)先級(jí)的消息被寫(xiě)入日志。也可以在一個(gè)過(guò)濾器表達(dá)式中提供多個(gè)這樣的過(guò)濾,它們之間用空格隔開(kāi)。
下面給出的例子是僅輸出標(biāo)記為“ActivityManager”并且優(yōu)先級(jí)大于等于“Info”和標(biāo)記為“MyApp”并且優(yōu)先級(jí)大于等于“Debug”的日志:
adb logcat ActivityManager:I MyApp:D *:S
上述表達(dá)式最后的 *:S 用于設(shè)置所有標(biāo)記的日志優(yōu)先級(jí)為S,這樣可以確保僅有標(biāo)記為“View”(譯者注:應(yīng)該為ActivityManager,原文可能是筆誤)和“MyApp”的日志被輸出,使用 *:S 是可以確保輸出符合指定的過(guò)濾器設(shè)置的一種推薦的方式,這樣過(guò)濾器就成為了日志輸出的“白名單”。
下面的表達(dá)是顯示所有優(yōu)先級(jí)大于等于“warning”的日志:
adb logcat *:W
如果在開(kāi)發(fā)用電腦上運(yùn)行 logcat (相對(duì)于運(yùn)行運(yùn)程shell而言),也可以通過(guò)ANDROID_LOG_TAGS環(huán)境變量設(shè)置默認(rèn)的過(guò)濾器表達(dá)式:
export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"
需要注意的是,如果是在遠(yuǎn)程shell或是使用adb shell logcat 命令運(yùn)行l(wèi)ogcat , ANDROID_LOG_TAGS 不會(huì)導(dǎo)出到模擬器或手機(jī)設(shè)備上。
控制日志格式
日志消息在標(biāo)記和優(yōu)先級(jí)之外還有很多元數(shù)據(jù)字段,這些字段可以通過(guò)修改輸出格式來(lái)控制輸出結(jié)果, -v 選項(xiàng)加上下面列出的內(nèi)容可以控制輸出字段:
brief — 顯示優(yōu)先級(jí)/標(biāo)記和原始進(jìn)程的PID (默認(rèn)格式)
process — 僅顯示進(jìn)程PID
tag — 僅顯示優(yōu)先級(jí)/標(biāo)記
thread — 僅顯示進(jìn)程:線程和優(yōu)先級(jí)/標(biāo)記
raw — 顯示原始的日志信息,沒(méi)有其他的元數(shù)據(jù)字段
time — 顯示日期,調(diào)用時(shí)間,優(yōu)先級(jí)/標(biāo)記,PID
long —顯示所有的元數(shù)據(jù)字段并且用空行分隔消息內(nèi)容
可以使用 -v啟動(dòng) logcat來(lái)控制日志格式:
[adb] logcat [-v <format>]
例如使用 thread 輸出格式:
adb logcat -v thread
注意只能在 -v 選項(xiàng)中指定一種格式。
Viewing Alternative Log Buffers
Android日志系統(tǒng)為日志消息保持了多個(gè)循環(huán)緩沖區(qū),而且不是所有的消息都被發(fā)送到默認(rèn)緩沖區(qū),要想查看這些附加的緩沖區(qū),可以使用-b 選項(xiàng),以下是可以指定的緩沖區(qū):
radio — 查看包含在無(wú)線/電話相關(guān)的緩沖區(qū)消息
events — 查看事件相關(guān)的消息
main — 查看主緩沖區(qū) (默認(rèn)緩沖區(qū))
-b 選項(xiàng)的用法:
[adb] logcat [-b <buffer>]
例如查看radio緩沖區(qū):
adb logcat -b radio
adb logcat簡(jiǎn)單舉例:
1、導(dǎo)入日志到sd卡
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- 在Android界面上顯示和獲取Logcat日志輸出的方法
- Android shell命令行中過(guò)濾adb logcat輸出的幾種方法
- Android開(kāi)發(fā)之在程序中時(shí)時(shí)獲取logcat日志信息的方法(附demo源碼下載)
- Android Studio使用小技巧:自定義Logcat
- logcat命令使用方法和查看android系統(tǒng)日志緩沖區(qū)內(nèi)容的方法
- android真機(jī)調(diào)試時(shí)無(wú)法顯示logcat信息的解決方法介紹
- Android開(kāi)發(fā)筆記之:一分鐘學(xué)會(huì)使用Logcat調(diào)試程序的詳解
- 如何通過(guò)Android Logcat插件分析firebase崩潰問(wèn)題
相關(guān)文章
詳解Android Activity之間切換傳遞數(shù)據(jù)的方法
這篇文章主要介紹了詳解Android Activity之間切換傳遞數(shù)據(jù)的方法 的相關(guān)資料,需要的朋友可以參考下2016-04-04Android SQLite數(shù)據(jù)庫(kù)操作代碼類分享
這篇文章主要介紹了Android SQLite數(shù)據(jù)庫(kù)操作代碼類分享,本文直接給出實(shí)現(xiàn)代碼和使用代碼,需要的朋友可以參考下2015-03-03Android開(kāi)發(fā)之splash界面下詳解及實(shí)例
這篇文章主要介紹了 Android開(kāi)發(fā)之splash界面下詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-03-03Android中自定義PopupWindow實(shí)現(xiàn)彈出框并帶有動(dòng)畫(huà)效果
這篇文章主要介紹了Android中自定義PopupWindow實(shí)現(xiàn)彈出框并帶有動(dòng)畫(huà)效果的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09退出Android程序時(shí)清除所有activity的實(shí)現(xiàn)方法
這篇文章主要介紹了退出Android程序時(shí)清除所有activity的實(shí)現(xiàn)方法,詳細(xì)分析了Android退出時(shí)清除activity的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-04-04Android編程實(shí)現(xiàn)根據(jù)經(jīng)緯度查詢地址并對(duì)獲取的json數(shù)據(jù)進(jìn)行解析的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)根據(jù)經(jīng)緯度查詢地址并對(duì)獲取的json數(shù)據(jù)進(jìn)行解析的方法,結(jié)合實(shí)例形式分析了Android的經(jīng)緯度地址解析與json格式數(shù)據(jù)操作相關(guān)技巧,需要的朋友可以參考下2017-02-02Android 中RecyclerView通用適配器的實(shí)現(xiàn)
這篇文章主要介紹了Android 中RecyclerView通用適配器的實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2017-03-03Android實(shí)現(xiàn)動(dòng)態(tài)改變shape.xml中圖形的顏色
這篇文章主要介紹了Android實(shí)現(xiàn)動(dòng)態(tài)改變shape.xml中圖形的顏色,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03