adb logcat 查看日志
使用?logcat?命令
????????查看和跟蹤系統(tǒng)日志緩沖區(qū)的命令logcat的一般用法是:
[adb] logcat [<option>] ... [<filter-spec>] ...下文介紹過濾器和命令選項,詳細內(nèi)容可參見Listing of logcat Command Options。
??可以在開發(fā)機中通過遠程shell的方式使用logcat命令查看日志輸出:
$ adb logcat??如果是在遠程shell中可直接使用命令:
# logcat?
過濾日志輸出
????????每一條日志消息都有一個標記和優(yōu)先級與其關(guān)聯(lián)。
標記是一個簡短的字符串,用于標識原始消息的來源?(例如"View"?來源于顯示系統(tǒng))。
優(yōu)先級是下面的字符,順序是從低到高:
V?—?明細?(最低優(yōu)先級)
D?—?調(diào)試
I?—?信息
W?—?警告
E?—?錯誤
F?—?嚴重錯誤
S?—?無記載?(最高優(yōu)先級,沒有什么會被記載)
??通過運行l(wèi)ogcat?,可以獲得一個系統(tǒng)中使用的標記和優(yōu)先級的列表,觀察列表的前兩列,給出的格式是<priority>/<tag>。
??這里是一個日志輸出的消息,優(yōu)先級是“I”,標記是“ActivityManager”:
I/ActivityManager( 585): Starting activity: Intent { action=android.intent.action...}如果想要減少輸出的內(nèi)容,可以加上過濾器表達式進行限制,過濾器可以限制系統(tǒng)只輸出感興趣的標記-優(yōu)先級組合。
過濾器表達式的格式是tag:priority ...?,其中tag是標記,?priority是最小的優(yōu)先級,?該標記標識的所有大于等于指定優(yōu)先級的消息被寫入日志。也可以在一個過濾器表達式中提供多個這樣的過濾,它們之間用空格隔開。
下面給出的例子是僅輸出標記為“ActivityManager”并且優(yōu)先級大于等于“Info”和標記為“MyApp”并且優(yōu)先級大于等于“Debug”的日志:
adb logcat?ActivityManager:I?MyApp:D?*:S
上述表達式最后的?*:S?用于設(shè)置所有標記的日志優(yōu)先級為S,這樣可以確保僅有標記為“View”(譯者注:應(yīng)該為ActivityManager,原文可能是筆誤)和“MyApp”的日志被輸出,使用?*:S?是可以確保輸出符合指定的過濾器設(shè)置的一種推薦的方式,這樣過濾器就成為了日志輸出的“白名單”。
下面的表達是顯示所有優(yōu)先級大于等于“warning”的日志:
adb logcat?*:W
如果在開發(fā)用電腦上運行?logcat?(相對于運行運程shell而言),也可以通過ANDROID_LOG_TAGS環(huán)境變量設(shè)置默認的過濾器表達式:
export?ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"
需要注意的是,如果是在遠程shell或是使用adb shell logcat?命令運行l(wèi)ogcat?,?ANDROID_LOG_TAGS?不會導出到模擬器或手機設(shè)備上。
?
控制日志格式
????????日志消息在標記和優(yōu)先級之外還有很多元數(shù)據(jù)字段,這些字段可以通過修改輸出格式來控制輸出結(jié)果,?-v?選項加上下面列出的內(nèi)容可以控制輸出字段:
brief?—?顯示優(yōu)先級/標記和原始進程的PID (默認格式)
process?—?僅顯示進程PID
tag?—?僅顯示優(yōu)先級/標記
thread?—?僅顯示進程:線程和優(yōu)先級/標記
raw?—?顯示原始的日志信息,沒有其他的元數(shù)據(jù)字段
time?—?顯示日期,調(diào)用時間,優(yōu)先級/標記,PID
long?—顯示所有的元數(shù)據(jù)字段并且用空行分隔消息內(nèi)容
? 可以使用?-v啟動?logcat來控制日志格式:
[adb] logcat [-v <format>]? 例如使用?thread?輸出格式:
adb logcat -v thread? 注意只能在?-v?選項中指定一種格式。
?
Viewing Alternative Log Buffers
????????Android日志系統(tǒng)為日志消息保持了多個循環(huán)緩沖區(qū),而且不是所有的消息都被發(fā)送到默認緩沖區(qū),要想查看這些附加的緩沖區(qū),可以使用-b?選項,以下是可以指定的緩沖區(qū):
radio?—?查看包含在無線/電話相關(guān)的緩沖區(qū)消息
events?—?查看事件相關(guān)的消息
main?—?查看主緩沖區(qū)?(默認緩沖區(qū))
-b?選項的用法:
[adb] logcat [-b <buffer>]? 例如查看radio緩沖區(qū):
adb logcat -b radio?
adb logcat簡單舉例:
1、導入日志到sd卡
?
?
/** * @author 張興業(yè) * ?http://blog.csdn.net/xyz_lmn * ?我的新浪微博:@張興業(yè)TBOW */總結(jié)
以上是生活随笔為你收集整理的adb logcat 查看日志的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 异常处理机制
- 下一篇: zinx框架分析