å¦ä½è¿æ»¤adb logcatè¾åº
æ¬æä»ç»å¦ä½å¨ shell å½ä»¤è¡ä¸è¿æ»¤ adb logcat è¾åºçå 个å°æå·§ã
å¼åå½ä¸ç»å¸¸çå°å«äººç log å¦æ´ªæ°´è¬ç¬é´å·æ»¡äºå±å¹ï¼å¯¹èªå·±æç¨çä¿¡æ¯é½è¢«æ·¹æ²¡äºï¼å½±åå¿æ
ä¹å½±åæçãä¸é¢æ¯å 个ææç¥éçè¿æ»¤æ¹æ³ã
1. åªæ¾ç¤ºéè¦çè¾åºï¼ç½åå
ææ¹ä¾¿çå½ç¶æ¯éè¿ç®¡éä½¿ç¨ grep è¿æ»¤äºï¼è¿æ ·å¯ä»¥ä½¿ç¨ grep 强大çæ£å表达å¼å¹é
ãç®åçå¹é
ä¸è¡å½ä¸çæ个å符串ï¼ä¾å¦ MyAppï¼
adb logcat | grep MyApp
adb logcat | grep -i myapp #忽ç¥å¤§å°åã
adb logcat | grep --color=auto -i myapp #设置å¹é
å符串é¢è²ãæ´å¤è®¾ç½®è¯·æ¥ç grep 帮å©ã
è¿é¶ä¸ç¹å¯ä»¥ä½¿ç¨ grep çæ£å表达å¼å¹é
ãä¾å¦ä¸ä¸ä¸ªä¾åä¼å¹é
ä¸è¡ä¸ä»»æä½ç½®ç MyAppï¼å¯ä»¥è®¾ç½®ä¸ºä»
å¹é
tagãé»è®¤ç log è¾åºå¦ä¸ï¼å¦æä¿®æ¹è¿è¾åºæ ¼å¼ç¸åºç表达å¼ä¹è¦ä¿®æ¹ã
I/CacheService( 665): Preparing DiskCache for all thumbnails.
å¯ä»¥çåº tag æ¯ä¸è¡å¼å¤´ç第ä¸ä¸ªå符å¼å§ï¼æ ¹æ®è¿ç¹ååºè¡¨è¾¾å¼ï¼
adb logcat | grep "^..MyApp"
æ ¹æ®è¿ä¸ªæ ¼å¼ä¹å¯ä»¥è®¾ç½®åªæ¾ç¤ºæ个ä¼å
级ç logï¼åå¹é
è¡é¦ç¬¬ä¸ä¸ªå符å³å¯ãä¾å¦ä»
æ¾ç¤º Error çº§å« tag 为 MyApp çè¾åºï¼
adb logcat | grep "^E.MyApp"
å½ç¶ä¹å¯ä»¥å¹é
å¤ä¸ªï¼ä½¿ç¨ | åå²å¤ä¸ªå¹é
表达å¼ï¼è¦å 转ä¹ç¬¦ãä¾å¦è¦å¹é
tag 为 MyApp å MyActivity çè¾åºï¼
adb logcat | grep "^..MyApp\|^..MyActivity"
adb logcat | grep -E "^..MyApp|^..MyActivity" #ä½¿ç¨ egrep æ 须转ä¹ç¬¦
2. è¿æ»¤ä¸éè¦çè¾åºï¼é»åå
è¿æ¯ä½¿ç¨ grepï¼ç¨æ³ä¹è·ä¸é¢çä¸æ ·ï¼å ä¸ä¸ª -v å³å¯ãä¾å¦è¦è¿æ»¤ tag 为 MyApp å MyActivity çè¾åºï¼
adb logcat | grep -v "^..MyApp\|^..MyActivity"
adb logcat | grep -vE "^..MyApp|^..MyActivity" #ä½¿ç¨ egrep æ 须转ä¹ç¬¦
3. æ¾ç¤ºåä¸ä¸ªè¿ç¨çææè¾åº
ææ¶ä¸ä¸ªç¨åºéé¢ç tag æå¤ä¸ªï¼éè¦è¾åºè¯¥ç¨åºï¼åä¸ä¸ª PIDï¼çææ tagï¼ä»
ä½¿ç¨ tag è¿æ»¤ææ¶ä¹ä¼æ¼æä¸äºé误信æ¯ï¼èä¸è¬é误信æ¯ä¹æ¯åç¨åºåä¸ä¸ª PIDãè¿æ¯éè¿ grep å®ç°ï¼æè·¯æ¯å
æ ¹æ®å
åæ¾å° pid å·ï¼ç¶åå¹é
pidãåæ shell èæ¬å¦ä¸ï¼åæ°æ¯ç¨åºç java å
åï¼å¦ com.android.mediaï¼ã
æ¥çæºä»£ç æå°å¸®å©
1 #!/bin/bash
2 packageName=$1
3 pid=`adb shell ps | grep $packageName | awk '{print $2}'`
4 adb logcat | grep --color=auto $pid
4. ä»å½åå¼å§æ¾ç¤º
logcat æç¼åï¼å¦æä»
éè¦æ¥çå½åå¼å§ç logï¼éè¦æ¸
空ä¹åçã
adb logcat -c && adb logcat
5. è¿æ»¤ log æ件
ææ¶éè¦åæ log æ件ï¼è¿æ»¤ log æ件è¿æ¯ä½¿ç¨ grepãä¾å¦ log æ件为 myapp.logï¼è¦å¹é
tag 为 MyApp å MyActivity çè¾åºï¼ç¶åè¾åºå° newmyapp.logï¼
cat myapp.log | grep "^..MyApp\|^..MyActivity" > newmyapp.log
Windows ä¸æ¨èä½¿ç¨ Notepad++ï¼ä¸ä¸ªå
费强大çè®°äºæ¬ï¼æ¯ææ£å表达å¼æ¥æ¾æ¿æ¢ãå¯ä»¥é«äº®æ¾ç¤ºå¹é
å
容ï¼ä¹å¯ä»¥å é¤ä¸éè¦çå
容ã
以ä¸çæ巧主è¦ç¨å°äº grepï¼å
¶å® logcat æ¬èº«ä¹æè¿æ»¤åè½ï¼å¯ä»¥æ ¹æ® tagãä¼å
级è¿æ»¤ logï¼å
·ä½è¯·åè Android å®æ¹ææ¡£ Reading and Writing Logsãå¦æå欢使ç¨å¾å½¢çé¢ï¼è¯·åè Using DDMSï¼DDMS éé¢ç logcat ä¹å¯ä»¥åæ ·è¿æ»¤ã
androidçlogcat详ç»ç¨æ³
Androidæ¥å¿ç³»ç»æä¾äºè®°å½åæ¥çç³»ç»è°è¯ä¿¡æ¯çåè½ãæ¥å¿é½æ¯ä»åç§è½¯ä»¶åä¸äºç³»ç»çç¼å²åºä¸è®°å½ä¸æ¥çï¼ç¼å²åºå¯ä»¥éè¿ logcat å½ ä»¤æ¥æ¥çå使ç¨.
使ç¨logcatå½ä»¤
ä½ å¯ä»¥ç¨ logcat å½ä»¤æ¥æ¥çç³»ç»æ¥å¿ç¼å²åºçå
容:
[adb] logcat [<option>] ... [<filter-spec>] ...
请æ¥çListing of logcat Command Options ï¼å®æ对logcatå½ ä»¤æ详ç»çæè¿° .
ä½ ä¹å¯ä»¥å¨ä½ ççµèæè¿è¡å¨æ¨¡æå¨/设å¤ä¸çè¿ç¨adb shell端æ¥ä½¿ç¨logcatå½ ä»¤ï¼ä¹å¯ä»¥å¨ä½ ççµèä¸æ¥çæ¥å¿è¾åºã
$ adb logcat
ä½ ä¹è¿æ ·ä½¿ç¨ï¼
# logcat
è¿æ»¤æ¥å¿è¾åº
æ¯ä¸ä¸ªè¾åºçAndroidæ¥å¿ä¿¡æ¯é½æä¸ä¸ªæ ç¾åå®çä¼å
级.
æ¥å¿çæ ç¾æ¯ç³»ç»é¨ä»¶åå§ä¿¡æ¯çä¸ä¸ªç®è¦çæ å¿ãï¼æ¯å¦ï¼âViewâå°± æ¯æ¥çç³»ç»çæ ç¾ï¼.
ä¼å
级æä¸åéä¸ï¼æ¯æç
§ä»ä½å°é«é¡ºå©æåç:
V â Verbose (lowest priority)
D â Debug
I â Info
W â Warning
E â Error
F â Fatal
S â Silent (highest priority, on which nothing is ever printed)
å¨è¿è¡logcatçæ¶åå¨å两åçä¿¡æ¯ä¸ä½ å°±å¯ä»¥çå° logcat çæ ç¾å表åä¼å
级å«,å®æ¯è¿æ ·æ åºç:<priority>/<tag> .
ä¸é¢æ¯ä¸ä¸ªlogcatè¾åºçä¾å,å®çä¼å
级就似ä¹I,æ ç¾ å°±æ¯ActivityManage:
I/ActivityManager( 585): Starting activity: Intent { action=android.intent.action...}
为äºè®©æ¥å¿è¾åºè½ä½ç°ç®¡çç级å«,ä½ è¿å¯ä»¥ç¨è¿æ»¤å¨æ¥æ§å¶æ¥å¿è¾åº,è¿æ»¤å¨å¯ä»¥å¸®å©ä½ æè¿° ç³»ç»çæ ç¾ç级.
è¿æ»¤å¨è¯å¥æç
§ä¸é¢çæ ¼å¼ætag:priority ... , tag 表 示æ¯æ ç¾,priority æ¯è¡¨ç¤ºæ ç¾çæ¥åçæä½ç级. ä»ä¸é¢çtagçä¸å¯ä»¥å¾å°æ¥å¿çä¼å
级. ä½ å¯ä»¥å¨è¿æ»¤å¨ä¸å¤æ¬¡åtag:priority .
è¿äºè¯´æé½åªå°ç©ºç½ç»æãä¸é¢æä¸ä¸ªååï¼ä¾å表示æ¯æææçæ¥å¿ä¿¡æ¯ï¼é¤äºé£äºæ ç¾ ä¸ºâActivityManagerâåä¼å
级为âInfoâ以ä¸çåæ ç¾ä¸ºâ MyAppâåä¼å
级为â Debugâ以ä¸çã å°ç级,ä¼å
ææ¥å为tag.
adb logcat ActivityManager:I MyApp:D *:S
ä¸é¢è¡¨è¾¾å¼çæåçå
ç´ *:S ,ï¼æ¯è®¾ç½®ææçæ ç¾ä¸ºâsilentâï¼æææ¥å¿åªæ¾ç¤ºæâViewâ and âMyAppâçï¼ç¨ *:S çå¦ä¸ä¸ªç¨å¤æ¯ è½å¤ç¡®ä¿æ¥å¿è¾åºçæ¶åæ¯æç
§è¿æ»¤å¨ç说æéå¶çï¼ä¹è®©è¿æ»¤å¨ä¹ä½ä¸ºä¸é¡¹è¾åºå°æ¥å¿ä¸.
ä¸é¢çè¿æ»¤è¯å¥ææ¾ç¤ºä¼å
级为warningææ´é«çæ¥å¿ä¿¡æ¯:
adb logcat *:W
å¦æä½ çµèä¸è¿è¡logcat ï¼ç¸æ¯å¨è¿ç¨adbshell端ï¼ä½ è¿å¯ä»¥ 为ç¯å¢åéANDROID_LOG_TAGS :è¾å
¥ä¸ä¸ªåæ°æ¥è®¾ç½®é»è®¤çè¿æ»¤
export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"
éè¦æ³¨æçæ¯ANDROID_LOG_TAGS è¿æ»¤å¨å¦æ éè¿è¿ç¨shellè¿è¡logcat æ ç¨adb shell logcat æ¥ è¿è¡æ¨¡æå¨/设å¤ä¸è½è¾åºæ¥å¿.
æ§å¶ æ¥å¿è¾åºæ ¼å¼
æ¥å¿ä¿¡æ¯å
æ¬äºè®¸å¤å
æ°æ®åå
æ¬æ ç¾åä¼å
级ãå¯ä»¥ä¿®æ¹æ¥å¿çè¾åºæ ¼å¼ï¼æ以å¯ä»¥æ¾ç¤ºåºç¹ å®çå
æ°æ®åãå¯ä»¥éè¿ -v é项å¾å°æ ¼å¼åè¾åºæ¥å¿çç¸å
³ä¿¡æ¯.
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.
å½å¯å¨äºlogcat ï¼ä½ å¯ä»¥éè¿-v é 项æ¥æå®è¾åºæ ¼å¼:
[adb] logcat [-v <format>]
ä¸é¢æ¯ç¨ thread æ¥äº§ççæ¥å¿æ ¼å¼:
adb logcat -v thread
éè¦æ³¨æçæ¯ä½ åªè½-v é项æ¥è§å®è¾åºæ ¼å¼ option.
æ¥ç å¯ç¨æ¥å¿ç¼å²åº
Androidæ¥å¿ç³»ç»æ循ç¯ç¼å²åºï¼å¹¶ä¸æ¯ææçæ¥å¿ç³»ç»é½æé»è®¤å¾ªç¯ç¼å²åºã为äºå¾å° æ¥å¿ä¿¡æ¯ï¼ä½ éè¦éè¿-b é项æ¥å¯å¨logcat ãå¦æè¦ä½¿ç¨å¾ªç¯ç¼å²åºï¼ä½ éè¦æ¥çå©ä½ç 循ç¯ç¼å²æ:
radio â æ¥çç¼å²åºçç¸å
³çä¿¡æ¯.
events â æ¥çåäºä»¶ç¸å
³ççç¼å²åº.
main â æ¥ç主è¦çæ¥å¿ç¼å²åº
-b é项使ç¨æ¹æ³:
[adb] logcat [-b <buffer>]
ä¸é¢çä¾å表示æä¹æ¥çæ¥å¿ç¼å²åºå
å«radio å telephonyä¿¡æ¯:
adb logcat -b radio
æ¥ç stdout åstderr
å¨é»è®¤ç¶æä¸ï¼Androidç³»ç»æstdout å stderr (System.outåSystem.err ) è¾åºå°/dev/null ï¼ å¨è¿è¡Dalvik VMçè¿ç¨ä¸ï¼æä¸ä¸ªç³»ç»å¯ä»¥å¤ä»½æ¥å¿æ件ãå¨è¿ç§æ
åµä¸ï¼ç³»ç»ä¼ç¨stdout åstderr å ä¼å
级 I.æ¥è®°å½æ¥å¿ä¿¡æ¯
éè¿è¿ç§æ¹æ³æå®è¾åºçè·¯å¾ï¼åæ¢è¿è¡ç模æå¨/设å¤ï¼ç¶åéè¿ç¨setprop å½ ä»¤è¿ç¨è¾å
¥æ¥å¿
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start
ç³»ç»ç´å°ä½ å
³é模æå¨/设å¤å设置ä¼ä¸ç´ä¿çï¼å¯ä»¥éè¿æ·»å /data/local.prop å¯ ä»¥ä½¿ç¨æ¨¡æå¨/设å¤ä¸çé»è®¤è®¾ç½®
Logcatå½ä»¤å表
Option Description
-b <buffer> å è½½ä¸ä¸ªå¯ä½¿ç¨çæ¥å¿ç¼å²åºä¾æ¥çï¼æ¯å¦event åradio . é»è®¤å¼æ¯main ãå
·ä½æ¥çViewing Alternative Log Buffers.
-c æ¸
æ¥å±å¹ä¸çæ¥å¿.
-d è¾åºæ¥å¿å°å±å¹ä¸.
-f <filename> æå®è¾åºæ¥å¿ä¿¡æ¯ç<filename> ï¼ é»è®¤æ¯stdout .
-g è¾åºæå®çæ¥å¿ç¼å²åºï¼è¾åºåéåº.
-n <count> 设置æ¥å¿çæ大æ°ç®<count> .ï¼ é»è®¤å¼æ¯4ï¼éè¦å -r é 项ä¸èµ·ä½¿ç¨ã
-r <kbytes> æ¯<kbytes> æ¶ è¾åºæ¥å¿ï¼é»è®¤å¼ä¸º16ï¼éè¦å-f é 项ä¸èµ·ä½¿ç¨.
-s 设置é»è®¤çè¿æ»¤çº§å«ä¸ºsilent.
-v <format> 设置æ¥å¿è¾å
¥æ ¼å¼ï¼é»è®¤çæ¯brief æ ¼ å¼ï¼è¦ç¥éæ´å¤çæ¯æçæ ¼å¼ï¼åçControlling Log Output Format .
温馨提示:内容为网友见解,仅供参考
如何过滤adb logcat输出
adb logcat | grep -E "^..MyApp|^..MyActivity" #使用 egrep 无须转义符 2. 过滤不需要的输出,黑名单 还是使用 grep,用法也跟上面的一样,加一个 -v 即可。例如要过滤 tag 为 MyApp 和 MyActivity 的输出:adb logcat | grep -v "^..MyApp\\|^..MyActivity"adb logcat | grep ...
如何过滤 adb logcat 命令的输出
adb logcat -s PowerManagerService \/\/显示PowerManagerService的日志信息 Logcat命令列表:-d 将日志显示在控制台后退出 -c 清理已存在的日志 -f <filename> 将日志输出到文件 adb logcat -f \/sdcard\/test.txt -v <format>设置日志输入格式控制输出字段,默认的是brief格式 brief — 显示优先...
如何过滤adb logcat输出
1. 只显示需要的输出,白名单 最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配。简单的匹配一行当中的某个字符串,例如 MyApp: adb logcat | grep MyApp adb logcat | grep -i myapp #忽略大小写。 adb logcat | grep --color=auto -i myapp #设置匹配字符...
如何过滤adb logcat输出
http:\/\/blog.csdn.net\/xxxsz\/article\/details\/7315481
如何过滤 adb logcat 输出
选绿色的加号 name随便给 设置tags即你想要让它显示内容的tag 剩下的也都是过滤条件,同上,分别是日志信息,PID,应用名,日记等级
如何过滤 adb logcat 输出
cmd命令行中使用adb logcat命令查看android系统和应用的log,dos窗口按ctrl+c中
android logcat 输出日志时,怎么通过级别来过滤日志,比如只显示出I级别...
1、如果是控制台,可以在控制台输入:adb logcat -s "*:I"2、如果是在Eclipse上的Logcat视图,可以选择filter的级别为“info”--- 更多疑问解答,尽在@安卓互助平台 新浪微博
android logcat 输出日志时,怎么通过级别来过滤日志,比如只显示出I级别...
1、如果是控制台,可以在控制台输入:adb logcat -s "*:I"2、如果是在Eclipse上的Logcat视图,可以选择filter的级别为“info”--- 更多疑问解答,尽在@安卓互助平台 新浪微博
如何过滤 adb logcat 命令的输出
点赞 0 评论 1 本文介绍如何在 shell 命令行中过滤 adb logcat 输出的几个小技巧。 开发... 1. 只显示需要的输出,白名单 最方便的当然是通过管道使用 grep 过
ADB的logcat怎么输出对应程序的log
d:\/sss.log \/\/将当前日志输出到d盘的sss.log中 sss.log不存在会自动创建,存在则覆盖原有的 adb logcat -s “xxx” \/\/输出当前以xxx为TAG的日志, 过滤日志的 LOG.i("xxx","YYYYY")adb logcat \/\/将日志打印在当前adb 窗口 还有很多 建议去下adb命令的使用 ...