android的logcat详细用法
??????
目錄(?)[+]
Android日志系統(tǒng)提供了記錄和查看系統(tǒng)調(diào)試信息的功能。日志都是從各種軟件和一些系統(tǒng)的緩沖區(qū)中記錄下來的,緩沖區(qū)可以通過??命 令來查看和使用.
使用
你可以用??命令來查看系統(tǒng)日志緩沖區(qū)的內(nèi)容:
[adb]請查看Listing of ?,它對
你也可以在你的電腦或運(yùn)行在模擬器/設(shè)備上的遠(yuǎn)程adb shell端來使用命 令,也可以在你的電腦上查看日志輸出。
$ adb你也這樣使用:
#過濾 日志輸出
每一個(gè)輸出的Android日志信息都有一個(gè)標(biāo)簽和它的優(yōu)先級.
- 日志的標(biāo)簽是系統(tǒng)部件原始信息的一個(gè)簡要的標(biāo)志。(比如:“View”就 是查看系統(tǒng)的標(biāo)簽).
- 優(yōu)先級有下列集中,是按照從低到高順利排列的:
- V?— Verbose (lowest priority)
- D?— Debug
- I?— Info
- W?— Warning
- E?— Error
- F?— Fatal
- S?— Silent (highest priority, on which nothing is ever printed)
在運(yùn)行
下面是一個(gè)
I/ActivityManager( 585): Starting activity: Intent { action=android.intent.action...}為了讓日志輸出能體現(xiàn)管理的級別,你還可以用過濾器來控制日志輸出,過濾器可以幫助你描述 系統(tǒng)的標(biāo)簽等級.
過濾器語句按照下面的格式描tag:priority ...?,?tag?表 示是標(biāo)簽,priority?是表示標(biāo)簽的報(bào)告的最低等級. 從上面的tag的中可以得到日志的優(yōu)先級.? 你可以在過濾器中多次寫tag:priority?.
這些說明都只到空白結(jié)束。下面有一個(gè)列子,例子表示支持所有的日志信息,除了那些標(biāo)簽 為”ActivityManager”和優(yōu)先級為”Info”以上的和標(biāo)簽為” MyApp”和優(yōu)先級為” Debug”以上的。 小等級,優(yōu)先權(quán)報(bào)告為tag.
adb上面表達(dá)式的最后的元素?*:S?,,是設(shè)置所有的標(biāo) 簽為”silent”,所有日志只顯示有”View” and “MyApp”的,用?*:S?的另一個(gè)用處是 能夠確保日志輸出的時(shí)候是按照過濾器的說明限制的,也讓過濾器也作為一項(xiàng)輸出到日志中.
下面的過濾語句指顯示優(yōu)先級為warning或更高的日志信息:
adb如果你電腦上運(yùn)行?,相比在遠(yuǎn)程adbshell端,你還可以 為環(huán)境變量ANDROID_LOG_TAGS?:輸入一個(gè)參數(shù)來設(shè)置默認(rèn)的過濾
export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"需要注意的是ANDROID_LOG_TAGS?過濾器如果 通過遠(yuǎn)程shell運(yùn)行?或 用adb shell ?來 運(yùn)行模擬器/設(shè)備不能輸出日志.
控制 日志輸出格式
日志信息包括了許多元數(shù)據(jù)域包括標(biāo)簽和優(yōu)先級。可以修改日志的輸出格式,所以可以顯示出特 定的元數(shù)據(jù)域。可以通過?-v?選項(xiàng)得到格式化輸出日志的相關(guān)信息.
- brief?— Display priority/tag and PID of originating process (the default format).
- process?— Display PID only.
- tag?— Display the priority/tag only.
- thread?— Display process:thread and priority/tag only.
- raw?— Display the raw log message, with no other metadata fields.
- time?— Display the date, invocation time, priority/tag, and PID of the originating process.
- long?— Display all metadata fields and separate messages with a blank lines.
當(dāng)啟動了?,你可以通過-v?選 項(xiàng)來指定輸出格式:
[adb]下面是用?thread?來產(chǎn)生的日志格式:
adb需要注意的是你只能-v?選項(xiàng)來規(guī)定輸出格式 option.
查看 可用日志緩沖區(qū)
Android日志系統(tǒng)有循環(huán)緩沖區(qū),并不是所有的日志系統(tǒng)都有默認(rèn)循環(huán)緩沖區(qū)。為了得到 日志信息,你需要通過-b?選項(xiàng)來啟動?。如果要使用循環(huán)緩沖區(qū),你需要查看剩余的 循環(huán)緩沖期:
- radio?— 查看緩沖區(qū)的相關(guān)的信息.
- events?— 查看和事件相關(guān)的的緩沖區(qū).
- main?— 查看主要的日志緩沖區(qū)
-b?選項(xiàng)使用方法:
[adb]下面的例子表示怎么查看日志緩沖區(qū)包含radio 和 telephony信息:
adb查看 stdout 和stderr
在默認(rèn)狀態(tài)下,Android系統(tǒng)有stdout?和?stderr?(System.out和System.err?)? 輸出到/dev/null?, 在運(yùn)行Dalvik VM的進(jìn)程中,有一個(gè)系統(tǒng)可以備份日志文件。在這種情況下,系統(tǒng)會用stdout?和stderr?和 優(yōu)先級 I.來記錄日志信息
通過這種方法指定輸出的路徑,停止運(yùn)行的模擬器/設(shè)備,然后通過用setprop?命 令遠(yuǎn)程輸入日志
$ adb shell stop $ adb shell setprop log.redirect-stdio true $ adb shell start系統(tǒng)直到你關(guān)閉模擬器/設(shè)備前設(shè)置會一直保留,可以通過添加/data/local.prop?可 以使用模擬器/設(shè)備上的默認(rèn)設(shè)置
| -b?<buffer> | 加載一個(gè)可使用的日志緩沖區(qū)供查看,比如event?和radio?. 默認(rèn)值是main?。具體查看Viewing Alternative Log Buffers. |
| -c | 清楚屏幕上的日志. |
| -d | 輸出日志到屏幕上. |
| -f?<filename> | 指定輸出日志信息的<filename>?, 默認(rèn)是stdout?. |
| -g | 輸出指定的日志緩沖區(qū),輸出后退出. |
| -n?<count> | 設(shè)置日志的最大數(shù)目<count>?., 默認(rèn)值是4,需要和?-r?選 項(xiàng)一起使用。 |
| -r?<kbytes> | 每<kbytes>?時(shí) 輸出日志,默認(rèn)值為16,需要和-f?選 項(xiàng)一起使用. |
| -s | 設(shè)置默認(rèn)的過濾級別為silent. |
| -v?<format> | 設(shè)置日志輸入格式,默認(rèn)的是brief?格 式,要知道更多的支持的格式,參看Controlling Log Output Format?. |
轉(zhuǎn)載于:https://www.cnblogs.com/bigben0123/p/4488457.html
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的android的logcat详细用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BigDecimal类的加减乘除
- 下一篇: android之frame动画详解