本文為轉(zhuǎn)載。
作者?:萬(wàn)境絕塵??轉(zhuǎn)載請(qǐng)著名出處
eclipse 自帶的 LogCat 工具太垃圾了, 開(kāi)始用 adb logcat 在終端查看日志;
轉(zhuǎn)載地址:http://blog.csdn.net/tumuzhuanjia/article/details/39555445
1. 解析 adb logcat 的幫助信息
在命令行中輸入?adb logcat --help?命令, 就可以顯示該命令的幫助信息;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?--help?? Usage:?logcat?[options]?[filterspecs]?? options?include:?? ??-s??????????????Set?default?filter?to?silent.?? ??????????????????Like?specifying?filterspec?'*:s'?? ??-f?<filename>???Log?to?file.?Default?to?stdout?? ??-r?[<kbytes>]???Rotate?log?every?kbytes.?(16?if?unspecified).?Requires?-f?? ??-n?<count>??????Sets?max?number?of?rotated?logs?to?<count>,?default?4?? ??-v?<format>?????Sets?the?log?print?format,?where?<format>?is?one?of:?? ?? ??????????????????brief?process?tag?thread?raw?time?threadtime?long?? ?? ??-c??????????????clear?(flush)?the?entire?log?and?exit?? ??-d??????????????dump?the?log?and?then?exit?(don't?block)?? ??-t?<count>??????print?only?the?most?recent?<count>?lines?(implies?-d)?? ??-g??????????????get?the?size?of?the?log's?ring?buffer?and?exit?? ??-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.?? ??-B??????????????output?the?log?in?binary?? filterspecs?are?a?series?of??? ??<tag>[:priority]?? ?? where?<tag>?is?a?log?component?tag?(or?*?for?all)?and?priority?is:?? ??V????Verbose?? ??D????Debug?? ??I????Info?? ??W????Warn?? ??E????Error?? ??F????Fatal?? ??S????Silent?(supress?all?output)?? ?? '*'?means?'*:d'?and?<tag>?by?itself?means?<tag>:v?? ?? If?not?specified?on?the?commandline,?filterspec?is?set?from?ANDROID_LOG_TAGS.?? If?no?filterspec?is?found,?filter?defaults?to?'*:I'?? ?? If?not?specified?with?-v,?format?is?set?from?ANDROID_PRINTF_LOG?? or?defaults?to?"brief"??
adb logcat 命令格式?: adb logcat [選項(xiàng)] [過(guò)濾項(xiàng)], 其中 選項(xiàng) 和 過(guò)濾項(xiàng) 在 中括號(hào) [] 中, 說(shuō)明這是可選的;
(1) 選項(xiàng)解析
選項(xiàng)解析?:?
--?"-s"選項(xiàng)?: 設(shè)置輸出日志的標(biāo)簽, 只顯示該標(biāo)簽的日志;
--"-f"選項(xiàng)?: 將日志輸出到文件, 默認(rèn)輸出到標(biāo)準(zhǔn)輸出流中, -f 參數(shù)執(zhí)行不成功;
--"-r"選項(xiàng)?: 按照每千字節(jié)輸出日志, 需要 -f 參數(shù), 不過(guò)這個(gè)命令沒(méi)有執(zhí)行成功;
--"-n"選項(xiàng)?: 設(shè)置日志輸出的最大數(shù)目, 需要 -r 參數(shù), 這個(gè)執(zhí)行 感覺(jué) 跟 adb logcat 效果一樣;
--"-v"選項(xiàng)?: 設(shè)置日志的輸出格式, 注意只能設(shè)置一項(xiàng);
--"-c"選項(xiàng)?: 清空所有的日志緩存信息;
--"-d"選項(xiàng)?: 將緩存的日志輸出到屏幕上, 并且不會(huì)阻塞;
--"-t"選項(xiàng)?: 輸出最近的幾行日志, 輸出完退出, 不阻塞;
--"-g"選項(xiàng)?: 查看日志緩沖區(qū)信息;
--"-b"選項(xiàng)?: 加載一個(gè)日志緩沖區(qū), 默認(rèn)是 main, 下面詳解;
--"-B"選項(xiàng)?: 以二進(jìn)制形式輸出日志;
.
輸出指定標(biāo)簽內(nèi)容?:?
--?"-s"選項(xiàng)?: 設(shè)置默認(rèn)的過(guò)濾器, 如 我們想要輸出 "System.out" 標(biāo)簽的信息, 就可以使用adb logcat -s System.out?命令;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-s?System.out?? ---------?beginning?of?/dev/log/system?? ---------?beginning?of?/dev/log/main?? I/System.out(22930):?GSM?-91?? I/System.out(22930):?SignalStrength?issssssssss?:?-91?? I/System.out(22930):?GSM?-91?? I/System.out(22930):?SignalStrength?issssssssss?:?-91?? I/System.out(22930):?Supervisor?Thread?? I/System.out(22930):?Got?run?mode??
輸出日志信息到文件?:?
--?"-f"選項(xiàng)?: 該選向后面跟著輸入日志的文件, 使用adb logcat -f /sdcard/log.txt?命令, 注意這個(gè)log文件是輸出到手機(jī)上,需要指定合適的路徑。
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-f /sdcard/log.txt???
這個(gè)參數(shù)對(duì)對(duì)不能一直用電腦連著手機(jī)收集日志的場(chǎng)景非常有用,其實(shí)android shell下也有一個(gè)相同參數(shù)的logcat命令。使用如下命令可以執(zhí)行后斷開(kāi)PC和手機(jī)持續(xù)收集LOG。
[plain]?view plain
?copy shell@pc$?adb?shell?? shell@android$?logcat?-f?/sdcard/log.txt?&???#這里的&符號(hào)表示后臺(tái)執(zhí)行,別少了。?? shell@android$?exit??
注:
(1)以上shell@pc$ 指在pc的shell終端執(zhí)行后邊的命令, shell@android$ 表示在手機(jī)shell中執(zhí)行后邊的命令l
(2)一定注意合適的時(shí)候需要停止掉以上命令,否則再次使用相同命令的時(shí)候,就會(huì)有兩個(gè)logcat寫(xiě)同一個(gè)文件了
????????? 停止方法:? adb shell kill -9 <logcat_pid>?????????
?????????? 其中l(wèi)ogcat_pid 通過(guò) 如下命令獲取
?????????? adb shell ps | grep logcat????????? # linux 平臺(tái)
?????????? adb shell ps | findstr "logcat" ?? #Windows平臺(tái)
--?">"輸出?: ">" 后面跟著要輸出的日志文件, 可以將 logcat 日志輸出到文件中, 使用adb logcat > log?命令, 使用more log?命令查看日志信息;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?>?log?? ^C?? octopus@octopus:~$?more?log?? ---------?beginning?of?/dev/log/system?? V/ActivityManager(??500):?We?have?pending?thumbnails:?null?? V/ActivityManager(??500):?getTasks:?max=1,?flags=0,?receiver=null?? V/ActivityManager(??500):?com.android.settings/.Settings:?task=TaskRecord{42392278?#448?A?com.android.settings?U?0}?? V/ActivityManager(??500):?We?have?pending?thumbnails:?null??
--?" -d -f <log>" 組合命令:可以將日志保存到手機(jī)上的指定位置,對(duì)不能一直用電腦連著手機(jī)收集日志的場(chǎng)景非常有用。
[plain]?view plain
?copy adb?logcat?-d?-v?/sdcard/mylog.txt??
指定 logcat 的日志輸出格式?:?
--?"-v"選項(xiàng)?: 使用adb logcat -v time?命令, 可以啥看日志的輸出時(shí)間;
??????????????使用adb logcat -v threadtime?命令, 可以啥看日志的輸出時(shí)間和線程信息;
--?"brief"格式?: 這是默認(rèn)的日志格式" 優(yōu)先級(jí) / 標(biāo)簽 (進(jìn)程ID) : 日志信息 ", 使用adb logcat -v prief命令;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-v?brief?? ---------?beginning?of?/dev/log/system?? D/PowerManagerService(??500):?handleSandman:?canDream=true,?mWakefulness=Awake?? D/PowerManagerService(??500):?releaseWakeLockInternal:?lock=1101267696,?flags=0x0??
--?
"process"格式
?:?
" 優(yōu)先級(jí) (進(jìn)程ID) : 日志信息 "
, 使用
adb logcat -v process
?命令;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-v?process?? ---------?beginning?of?/dev/log/system?? D(??500)?MobileDataStateReceiver?received:?ACTION_ANY_DATA_CONNECTION_STATE_CHANGED_MOBILE?[wap]??(MobileDataStateTracker)?? V(??500)?Broadcast:?Intent?{?act=android.intent.action.ANY_DATA_STATE_MOBILE?flg=0x10?(has?extras)?}?ordered=true?userid=0??(ActivityManager)?? D(??500)?wap:?Intent?from?SIM?0,?current?SIM?0,?current?DataState?DISCONNECTED??(MobileDataStateTracker)?? D(??500)?wap:?wap?setting?isAvailable?to?false??(MobileDataStateTracker)?? D(??500)?wap:?Received?state=DISCONNECTED,?old=DISCONNECTED,?reason=dataDetached??(MobileDataStateTracker)?? D(??500)?BDC-Calling?finishReceiver:?IIntentReceiver=41c46ba0??(ActivityThread)??
--?
"tag"格式
?:?
" 優(yōu)先級(jí) / 標(biāo)簽 : 日志信息"
, 使用
adb logcat -v tag
?命令;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-v?tag?? ---------?beginning?of?/dev/log/system?? I/PowerManagerService:?setBrightness?mButtonLight?0.?? D/PowerManagerService:?updateScreenStateLocked:?mDisplayReady=true,?newScreenState=2,?mWakefulness=1,?mWakeLockSummary=0x1,?mUserActivitySummary=0x1,?mBootCompleted=true?? D/PowerManagerService:?handleSandman:?canDream=true,?mWakefulness=Awake??
--?
"thread"格式
?:?
" 優(yōu)先級(jí) ( 進(jìn)程ID : 線程ID) 標(biāo)簽 : 日志內(nèi)容 "
, 使用
adb logcat -v tag
?命令;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-v?thread?? ---------?beginning?of?/dev/log/system?? V(??500:?2141)?getTasks:?max=1,?flags=0,?receiver=null?? V(??500:?2141)?com.lewa.launcher/.Launcher:?task=TaskRecord{41dccc20?#425?A?com.lewa.launcher?U?0}?? V(??500:?2141)?We?have?pending?thumbnails:?null?? V(??500:?2140)?getTasks:?max=1,?flags=0,?receiver=null??
--?
"raw"格式
?: 只輸出日志信息, 不附加任何其他 信息, 如 優(yōu)先級(jí) 標(biāo)簽等, 使用
adb logcat -v raw
?命令;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-v?raw?? ---------?beginning?of?/dev/log/system?? notifications?are?enabled?for?com.kindroid.security?? Assigned?score=0?to?Notification(pri=0?contentView=com.kindroid.security/0x7f030052?vibrate=null?sound=null?defaults=0x0?flags=0x2?kind=[null])?? Native?set?alarm?:Alarm{41e1ca00?type?3?com.kindroid.security}?? reset?poweroff?alarm?none??
--?
"time"格式?
:?
"日期 時(shí)間 優(yōu)先級(jí) / 標(biāo)簽 (進(jìn)程ID) : 進(jìn)程名稱 : 日志信息 "
, 使用
adb logcat -v time
?命令;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-v?time?? ---------?beginning?of?/dev/log/system?? 04-25?17:18:13.019?V/ActivityManager(??500):?Broadcast?sticky:?Intent?{?act=android.intent.action.SIG_STR?flg=0x10?(has?extras)?}?ordered=false?userid=-1?? 04-25?17:18:13.157?V/NotificationService(??500):?enqueueNotificationInternal:?pkg=com.kindroid.security?id=1020?notification=Notification(pri=0?contentView=com.kindroid.security/0x7f030052?vibrate=null?sound=null?defaults=0x0?flags=0x2?kind=[null])?? 04-25?17:18:13.158?V/NotificationService(??500):?notifications?are?enabled?for?com.kindroid.security?? 04-25?17:18:13.158?V/NotificationService(??500):?Assigned?score=0?to?Notification(pri=0?contentView=com.kindroid.security/0x7f030052?vibrate=null?sound=null?defaults=0x0?flags=0x2?kind=[null])?? 04-25?17:18:13.555?V/ActivityManager(??500):?getTasks:?max=1,?flags=0,?receiver=null??
--?
"long"格式
:
" [ 日期 時(shí)間 進(jìn)程ID : 線程ID 優(yōu)先級(jí) / 標(biāo)簽] 日志信息 "
, 輸出以上提到的所有的頭信息, 使用
adb logcat -v long
?命令;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-v?long?? ---------?beginning?of?/dev/log/system?? [?04-25?17:21:18.118???500:0x2fe?V/ActivityManager?]?? We?have?pending?thumbnails:?null?? ?? [?04-25?17:21:18.696???593:0x251?W/ActivityThread?]?? Content?provider?com.android.providers.telephony.TelephonyProvider?already?published?as?telephony?? ?? [?04-25?17:21:19.119???500:0x396?V/ActivityManager?]?? getTasks:?max=1,?flags=0,?receiver=null??
清空日志緩存信息
?: 使用?
adb logcat -c
?命令, 可以將之前的日志信息清空, 重新開(kāi)始輸出日志信息;
將緩存日志輸出
?: 使用?
adb logcat -d
?命令, 輸出命令, 之后推出命令, 不會(huì)進(jìn)行阻塞;
輸出最近的日志?: 使用adb logcat -t 5?命令, 可以輸出最近的5行日志, 并且不會(huì)阻塞;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-t?5?? ---------?beginning?of?/dev/log/system?? ---------?beginning?of?/dev/log/main?? W/ADB_SERVICES(10028):?adb:?unable?to?open?/proc/10028/oom_adj?? D/dalvikvm(23292):?threadid=11:?created?from?interp?? D/dalvikvm(23292):?start?new?thread?? D/dalvikvm(23292):?threadid=11:?notify?debugger?? D/dalvikvm(23292):?threadid=11?(Thread-24538):?calling?run()?? octopus@octopus:~$???
查看日志緩沖區(qū)信息
?: 使用?
adb logcat -g
?命令;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-g?? /dev/log/main:?ring?buffer?is?256Kb?(255Kb?consumed),?max?entry?is?5120b,?max?payload?is?4076b?? /dev/log/system:?ring?buffer?is?256Kb?(255Kb?consumed),?max?entry?is?5120b,?max?payload?is?4076b?? octopus@octopus:~$???
加載日志緩沖區(qū)
?: 使用?
adb logcat -b 緩沖區(qū)類型
?命令;
--?Android中的日志緩沖區(qū)?: system緩沖區(qū) - 與系統(tǒng)相關(guān)的日志信息, radio緩沖區(qū) - 廣播電話相關(guān)的日志信息, events緩沖區(qū) - 事件相關(guān)的日志信息, main緩沖區(qū) - 默認(rèn)的緩沖區(qū);
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-b?radio?-t?5?? D/PHONE???(23599):?[GeminiDataSubUtil]?UAPP_C6-4?? D/GSM?????(23599):?[GDCT][simId1]apnType?=?default?? D/GSM?????(23599):?[GDCT][simId1]isDataAllowed:?not?allowed?due?to?-?gprs=?1?-?SIM?not?loaded?-?desiredPowerState=?false?? D/GSM?????(23599):?[GDCT][simId1]isDataPossible(default):?possible=false?isDataAllowed=false?apnTypePossible=true?apnContextisEnabled=true?apnContextState()=IDLE?? I/MUXD????(23591):?[gsm0710muxd]?3426:main():?Frames?received/dropped:?18242/0?? octopus@octopus:~$??? octopus@octopus:~$?adb?logcat?-b?main?-t?5?? D/NotificationService(??500):?notification.sound=null?? D/NotificationService(??500):?mDmLock=false?? I/ATCIJ???(16576):?Couldn't?find?'atci-serv-fw'?socket;?retrying?after?timeout?? W/ADB_SERVICES(??246):?create_local_service_socket()?name=shell:export?ANDROID_LOG_TAGS=""?;?exec?logcat?-b?main?-t?5?? W/ADB_SERVICES(16815):?adb:?unable?to?open?/proc/16815/oom_adj?? octopus@octopus:~$??? octopus@octopus:~$?adb?logcat?-b?system?-t?5?? D/PowerManagerService(??500):?updateScreenStateLocked:?mDisplayReady=true,?newScreenState=0,?mWakefulness=0,?mWakeLockSummary=0x1,?mUserActivitySummary=0x0,?mBootCompleted=true?? D/PowerManagerService(??500):?handleSandman:?canDream=false,?mWakefulness=Asleep?? V/NotificationService(??500):?enqueueNotificationInternal:?pkg=com.kindroid.security?id=1020?notification=Notification(pri=0?contentView=com.kindroid.security/0x7f030052?vibrate=null?sound=null?defaults=0x0?flags=0x2?kind=[null])?? V/NotificationService(??500):?notifications?are?enabled?for?com.kindroid.security?? V/NotificationService(??500):?Assigned?score=0?to?Notification(pri=0?contentView=com.kindroid.security/0x7f030052?vibrate=null?sound=null?defaults=0x0?flags=0x2?kind=[null])?? octopus@octopus:~$??? octopus@octopus:~$?adb?logcat?-b?event?-t?5?? Unable?to?open?log?device?'/dev/log/event':?No?such?file?or?directory?? octopus@octopus:~$?adb?logcat?-b?events?-t?5?? I/notification_cancel(??500):?[com.kindroid.security,1026,NULL,0,0,64]?? I/notification_enqueue(??500):?[com.kindroid.security,1020,NULL,0,Notification(pri=0?contentView=com.kindroid.security/0x7f030052?vibrate=null?sound=null?defaults=0x0?flags=0x2?kind=[null])]?? I/notification_cancel(??500):?[com.kindroid.security,1026,NULL,0,0,64]?? I/notification_enqueue(??500):?[com.kindroid.security,1020,NULL,0,Notification(pri=0?contentView=com.kindroid.security/0x7f030052?vibrate=null?sound=null?defaults=0x0?flags=0x2?kind=[null])]?? I/notification_cancel(??500):?[com.kindroid.security,1026,NULL,0,0,64]?? octopus@octopus:~$???
以二進(jìn)制形式輸出日志
?: 使用?
adb logcat -B
?命令;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?-B??-t?5?? O��_�3ZS�4gps_mt3326nmea_reader_parse:?line?=?1218GPS?get?accuracy?failed,?fix?mode:1?? ^��_�3ZS�=gps_mt3326nmea_reader_addc:?line?=?1331the?structure?include?nmea_cb?address?is?0x658cc8e8?? H��_�3ZSEGEgps_mt3326nmea_reader_addc:?line?=?1332nmea_cb?address?is?0x5d2fe279?? i���3ZS�)>ADB_SERVICEScreate_local_service_socket()?name=shell:export?ANDROID_LOG_TAGS=""?;?exec?logcat?-B?-t?5?? 7*E*E�3ZSo�YADB_SERVICESadb:?unable?to?open?/proc/17706/oom_adj??
(2) 過(guò)濾項(xiàng)解析
過(guò)濾項(xiàng)格式?:?<tag>[:priority] , 標(biāo)簽:日志等級(jí), 默認(rèn)的日志過(guò)濾項(xiàng)是 " *:I " ;
--?V?: Verbose (明細(xì));
--?D?: Debug (調(diào)試);
--?I?: Info (信息);
--?W?: Warn (警告);
--?E?: Error (錯(cuò)誤);
--?F: Fatal (嚴(yán)重錯(cuò)誤);
--?S?: Silent(Super all output) (最高的優(yōu)先級(jí), 可能不會(huì)記載東西);
過(guò)濾指定等級(jí)日志?: 使用?adb logcat 10 *:E?命令, 顯示 Error 以上級(jí)別的日志;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?*:E?? ?? Note:?log?switch?off,?only?log_main?and?log_events?will?have?logs!?? ---------?beginning?of?/dev/log/main?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;?? E/dalvikvm(??756):?GC_CONCURRENT?freed?1809K,?27%?free?19489K/26695K,?paused?16ms+5ms,?total?109ms?? E/WifiHW??(??441):?wifi_send_command?:?SCAN?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;?? E/dalvikvm(??756):?GC_CONCURRENT?freed?1820K,?27%?free?19490K/26695K,?paused?16ms+3ms,?total?102ms?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;??
過(guò)濾指定標(biāo)簽等級(jí)日志?: 使用?adb logcat WifiHW:D *:S?命令進(jìn)行過(guò)濾;
--?命令含義?: 輸出10條日志, 日志是 標(biāo)簽為?WifiHW, 并且優(yōu)先級(jí) Debug(調(diào)試) 等級(jí)以上的級(jí)別的日志;
--注意 *:S?: 如果沒(méi)有 *S 就會(huì)輸出錯(cuò)誤;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?WifiHW:D?*:S?? ?? Note:?log?switch?off,?only?log_main?and?log_events?will?have?logs!?? ---------?beginning?of?/dev/log/main?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;??
可以同時(shí)設(shè)置多個(gè)過(guò)濾器?: 使用adb logcat WifiHW:D dalvikvm:I *:S?命令,?輸出?WifiHW 標(biāo)簽 的 Debug 以上級(jí)別 和?dalvikvm 標(biāo)簽的 Info 以上級(jí)別的日志;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?WifiHW:D?dalvikvm:I?*:S??? ?? Note:?log?switch?off,?only?log_main?and?log_events?will?have?logs!?? ---------?beginning?of?/dev/log/main?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;?? E/dalvikvm(??756):?GC_CONCURRENT?freed?1820K,?27%?free?19490K/26695K,?paused?17ms+2ms,?total?110ms?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;?? E/dalvikvm(??756):?GC_CONCURRENT?freed?1810K,?27%?free?19489K/26695K,?paused?17ms+5ms,?total?108ms?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;??
2. 使用管道過(guò)濾日志
(1) 過(guò)濾固定字符串
過(guò)濾固定字符串?: 只要命令行出現(xiàn)的日志都可以過(guò)濾, 不管是不是標(biāo)簽;
--?命令?:?adb logcat | grep Wifi?;
[plain]?view plaincopy
octopus@octopus:~$?adb?logcat?|?grep?Wifi?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?AP_SCAN?1?;?interface?index=0;?? E/WifiHW??(??441):?wifi_send_command?:?SCAN_RESULTS?;?interface?index=0;??
過(guò)濾字符串忽略大小寫(xiě)?:?adb logcat | grep -i wifi?;
(2) 使用正則表達(dá)式匹配
分析日志?: 該日志開(kāi)頭兩個(gè)字符是 "V/", 后面開(kāi)始就是標(biāo)簽, 寫(xiě)一個(gè)正則表達(dá)式 "^..ActivityManager", 就可以匹配日志中的 "V/ActivityManager" 字符串;
[plain]?view plaincopy
V/ActivityManager(??574):?getTasks:?max=1,?flags=0,?receiver=null??
正則表達(dá)式過(guò)濾日志: 使用上面的正則表達(dá)式組成命令?adb logcat | grep "^..Activity"?;
作者?:?萬(wàn)境絕塵??轉(zhuǎn)載請(qǐng)著名出處
總結(jié)
以上是生活随笔為你收集整理的adb logcat 命令行用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。