logcat命令使用方法和查看android系統(tǒng)日志緩沖區(qū)內(nèi)容的方法
*注:可以用 adb logcat > 路徑/文件名 來保存,
此命令執(zhí)行之時(shí)起的全部日志信息到一個(gè)文件里,ctrl + C 結(jié)束日志輸出;
后面不加 > 路徑/文件名 的話,則在 stdout (終端窗口)中輸出!
例如:$ adb logcat -v long Checkin *:S > ~/桌面/log.txt
一、在 Java 與 C 語(yǔ)言中輸出日志:
1) Java 代碼在程序中輸出日志, 使用 android.util.Log 類的以下 5 個(gè)方法:
Log.v()、Log.d()、Log.i()、Log.w()、Log.e()。
分對(duì)應(yīng) Verbose、Debug、INFO、Warn、Error 的首字母。
例如:Log.i( "類::函數(shù)名", "日期_時(shí)間_源碼文件名_行號(hào)_日志信息內(nèi)容" );
2) C 代碼在程序中輸出日志,使用 log 的 API 函數(shù):
__android_log_write( 日志類型宏,日志標(biāo)簽字符串,日志令牌內(nèi)容字符串 );
需要:1. Android.mk 中添加 LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
2. *.c 中添加 #include <android/log.h>
3. 日志類型宏有:
// Android log priority values, in ascending priority order.
typedef enum android_LogPriority {
ANDROID_LOG_UNKNOWN = 0,
// only for SetMinPriority()
ANDROID_LOG_DEFAULT,
ANDROID_LOG_VERBOSE,
ANDROID_LOG_DEBUG,
ANDROID_LOG_INFO,
ANDROID_LOG_WARN,
ANDROID_LOG_ERROR,
ANDROID_LOG_FATAL,
// only for SetMinPriority(); must be last
ANDROID_LOG_SILENT,
} android_LogPriority;
二、logcat 使用方法:
Usage: logcat [options] [filterspecs]
用法: logcat [選項(xiàng)] [過濾說明]
options include:
選項(xiàng)包含:
-s Set default filter to silent.
Like specifying filterspec '*:S'
設(shè)置默認(rèn)過濾為無聲的。
像指定過濾說明為 *:S ,見下面 過濾說明 部份詳述
-f <filename> Log to file.
Default to stdout
輸出日志到文件。
默認(rèn)為 stdout
-r [<kbytes>] Rotate log every kbytes.
(16 if unspecified).
Requires -f
設(shè)置環(huán)形日志緩沖區(qū)的kbytes。
默認(rèn)值為16。
需要和 -f 選項(xiàng)一起使用
-n <count> Sets max number of rotated logs to <count>, default 4
設(shè)置環(huán)形日志緩沖區(qū)的最大數(shù)目,默認(rèn)值是4,需要和 -r 選項(xiàng)一起使用
-v <format> Sets the log print format, where <format> is one of:
設(shè)置 log 的打印格式, 格式有如下主要7種:(不能組合使用)
brief
process
tag
thread
raw
time
threadtime
long
-c clear (flush) the entire log and exit
清除所有 log 并退出
-d dump the log and then exit (don't block)
得到所有l(wèi)og并退出且不阻塞
-t <count> print only the most recent <count> lines (implies -d)
僅打印最近的由參數(shù) count 指出的行數(shù)(必然包含 -d)
-g get the size of the log's ring buffer and exit
得到環(huán)形緩沖區(qū)的大小并退出
-b <buffer> Request alternate ring buffer, 'main', 'system', 'radio' or 'events'.
Multiple -b parameters are allowed and the results are interleaved.
The default is -b main -b system.
請(qǐng)求供替換的環(huán)形緩沖區(qū),如:main,system,radio,events。
多個(gè) -b 參數(shù)是被允許,并且結(jié)果是交錯(cuò)輸出的。
-b main -b system 是默認(rèn)的。
-B output the log in binary
輸出 log 到二進(jìn)制文件中。
filterspecs are a series of <tag>[:priority]
過濾說明是一系列 <tag>[:priority]
where <tag> is a log component tag (or * for all) and priority is:
tag 是 eclipse 中 logcat 圖形界面中 Tag 的內(nèi)容(或者有 * 表示全部),它之后的冒號(hào)(:)后面跟優(yōu)先級(jí):
日志類型標(biāo)識(shí)符(優(yōu)先級(jí)由低到高排列):
1. V — Verbose 詳細(xì)的 <- 最低優(yōu)先權(quán)
2. D — Debug 調(diào)試
3. I — Info 消息
4. W — Warn 警告
5. E — Error 錯(cuò)誤
6. F — Fatal 致命的
7. S — Silent 無聲的 <- 最高優(yōu)先權(quán)
'*' means '*:d' and <tag> by itself means <tag>:v
* 意味著 *:d 且 單孤地 tag 意味著 tag:V
If not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.
如果在命令行上沒有詳細(xì)說明,過濾規(guī)格即是 ANDROID_LOG_TAGS 結(jié)果集。
If no filterspec is found, filter defaults to '*:I'
如果沒有過濾說明,過濾規(guī)格默認(rèn)為 *:I
If not specified with -v, format is set from ANDROID_PRINTF_LOG or defaults to "brief"
如果沒有 -v 指定格式,將是 ANDROID_PRINTF_LOG 或 brief 格式集。
1) 只輸出指定 標(biāo)簽 和 類型 的日志
格式:
adb logcat <日志標(biāo)簽>:<日志類型標(biāo)識(shí)符> <日志標(biāo)簽>:<日志類型標(biāo)識(shí)符> ... *:S
注:1. 可以寫多個(gè) <日志標(biāo)簽>:<日志類型標(biāo)識(shí)符> 之間用空格分隔;
2. 最后必須是 *:S ,表示其它的都不要顯示出來
例如:
$ adb logcat dalvikvm:D Checkin:W *:S
注:adb logcat Checkin *:S =等同于=> adb logcat Checkin:V *:S
注:以上命令均沒加 -v 來指出日志格式,即默認(rèn)為: ANDROID_PRINTF_LOG 或 brief 格式集。
2) 輸出指定 標(biāo)簽 和 類型 的帶有格式的日志
注:以下測(cè)試日志內(nèi)容為:test log format,
即 eclipse 中的 logcat 圖形界面里的 Text 中的內(nèi)容!
1. brief - 日志類型/日志標(biāo)簽(進(jìn)程ID): 日志內(nèi)容
例如:$ adb logcat -v brief Checkin *:S
I/Checkin(24713): test log format
2. process - 日志類型(進(jìn)程ID) 日志內(nèi)容 (日志標(biāo)簽)
例如:$ adb logcat -v process Checkin *:S
I(24713) test log format (Checkin)
3. tag - 日志類型/日志標(biāo)簽: 日志內(nèi)容
例如:$ adb logcat -v tag Checkin *:S
I/Checkin: test log format
4. thread - 日志類型(進(jìn)程ID:線程ID)
例如:$ adb logcat -v thread Checkin *:S
I(24713:0x6089) test log format
5. raw - 日志內(nèi)容
例如:$ adb logcat -v raw Checkin *:S
test log format
6. time - 日期 調(diào)用時(shí)間 日志類型/日志標(biāo)簽(進(jìn)程ID): 日志內(nèi)容
例如:$ adb logcat -v time Checkin *:S
05-27 11:25:33.854 I/Checkin(24713): test log format
7. threadtime - 日期 調(diào)用時(shí)間 進(jìn)程ID 線程ID 日志類型 日志標(biāo)簽: 日志內(nèi)容
例如:$ adb logcat -v time Checkin *:S
05-27 11:25:33.854 24713 24713 I Checkin: test log format
注:只有此種格式時(shí) 線程ID 為十進(jìn)制數(shù)。
8. long - [ 日期 調(diào)用時(shí)間 進(jìn)程ID:線程ID 日志類型/日志標(biāo)簽 ] 轉(zhuǎn)行顯示 日志內(nèi)容
例如:$ adb logcat -v long Checkin *:S
[ 05-27 11:25:33.854 24713:0x6089 I/Checkin ]
test log format
相關(guān)文章
Android實(shí)現(xiàn)截圖和分享功能的代碼
截圖和分享功能大家都玩過,下面通過本文給大家介紹Android實(shí)現(xiàn)截圖和分享功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-07-07Android Rsa數(shù)據(jù)加解密的介紹與使用示例
RSA是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,也很流行。想起自己曾經(jīng)使用過的Rsa非對(duì)稱加密算法,閑下來總結(jié)一下。方便自己和大家以后使用的時(shí)候參考借鑒。下面來一起看看吧。2016-09-09Flutter實(shí)戰(zhàn)教程之酷炫的開關(guān)動(dòng)畫效果
這篇文章主要給大家介紹了關(guān)于Flutter實(shí)戰(zhàn)教程之酷炫的開關(guān)動(dòng)畫效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Android ListView滑動(dòng)改變標(biāo)題欄背景漸變效果
這篇文章主要為大家詳細(xì)介紹了Android ListView滑動(dòng)改變標(biāo)題欄背景漸變效果,透明轉(zhuǎn)變成不透明,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Android貝塞爾曲線實(shí)現(xiàn)消息拖拽消失
這篇文章主要為大家詳細(xì)介紹了Android貝塞爾曲線實(shí)現(xiàn)消息拖拽消失,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01Android帶刷新時(shí)間顯示的PullToRefresh上下拉刷新
這篇文章主要為大家詳細(xì)介紹了Android帶刷新時(shí)間顯示的PullToRefresh上下拉刷新,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12WindowManagerService服務(wù)是如何以堆棧的形式來組織窗口
我們知道,在Android系統(tǒng)中,Activity是以堆棧的形式組織在ActivityManagerService服務(wù)中的;在本文中,我們就詳細(xì)分析WindowManagerService服務(wù)是如何以堆棧的形式來組織窗口的2013-01-01android多媒體音樂(MediaPlayer)播放器制作代碼
這篇文章主要為大家詳細(xì)介紹了android多媒體音樂(MediaPlayer)播放器的制作相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Flutter基于Dart Unwrapping Multiple Optional小技巧
這篇文章主要為大家介紹了Flutter Unwrapping Multiple Optional打開多個(gè)選項(xiàng)小技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12Android 實(shí)現(xiàn)釘釘自動(dòng)打卡功能
這篇文章主要介紹了Android 實(shí)現(xiàn)釘釘自動(dòng)打卡功能的步驟,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-03-03