Logcat过滤及常见用法整理

来源:互联网 发布:java开源博客系统 编辑:程序博客网 时间:2024/06/06 10:46

转自:http://hi.baidu.com/donghaozheng/blog/item/22d6c6fc7d37aef0fd037faf.html

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
-M <1,0>          Set enable copy(Move) the log to oms_log_path
-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)
-g                      get the size of the log's ring buffer and exit
-b <buffer>        request alternate ring buffer
                          ('main' (default), 'radio', 'events')
-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"

示例:

1.看radio log
logcat -b radio

I/RILC    (   46): 39 0d 0a
I/RILC    (   46): AT[0]< +ECIND: 1,16,99
I/RILC    (   46): AT[0]< +ECSQ: 16,99
I/RILC    (   46): <<<< pCh[0]...
I/RILC    (   46): 0d 0a 2b 45 43 49 4e 44 3a 20 31 2c 31 37 2c 39 39 0d 0a 0d 0a 2b 45 43 53 51 3a 20 31 37 2c 39
I/RILC    (   46): 39 0d 0a
I/RILC    (   46): AT[0]< +ECIND: 1,17,99
I/RILC    (   46): AT[0]< +ECSQ: 17,99

2.查看warning以上的log
logcat *:w

E/SensorManager( 102): smjni------jni data_open
E/        (   49): b433 6155
E/        (   49): b433 6157
E/gralloc ( 102): [unregister] handle 0x2debd0 still lock
W/BatteryService( 102): get battery health[0] 'Charging'
W/BatteryService( 102): get battery health='Good'
W/BatteryService( 102): get battery health[0] 'Charging'
W/BatteryService( 102): get battery health='Good'

3.过滤查看dalvikvm的log
logcat -s dalvikvm 或者 logcat dalvikvm *:s

D/dalvikvm( 257): GC freed 1191 objects / 343344 bytes in 65ms
D/dalvikvm( 257): GC freed 1191 objects / 343400 bytes in 64ms
D/dalvikvm( 257): GC freed 1191 objects / 343368 bytes in 65ms
D/dalvikvm( 257): GC freed 1191 objects / 343416 bytes in 70ms
D/dalvikvm( 257): GC freed 1191 objects / 343384 bytes in 64ms

备注:logcat的过滤方式有点儿怪异,并不是直接指定要过滤的tag并指定priority就行,必须要设定所有的为silent,在此基础上设置的tag过滤才成功。
所以,logcat appname:v 是不能成功过滤log的。

4.过滤多个app
logcat -s dalvikvm vold

D/vold    (   43): door_sock=10
D/vold    (   43): fw_sock=7
D/vold    (   43): uevent_sock=6
D/dalvikvm( 257): GC freed 1191 objects / 343384 bytes in 76ms
D/dalvikvm( 257): GC freed 1191 objects / 343368 bytes in 81ms
D/dalvikvm( 257): GC freed 1191 objects / 343400 bytes in 64ms
D/vold    (   43): select result=1
log保存到文件
logcat > 1.txt (">"是windows用的数据流导向符号)

5.尝试用-f选项,结果报错。
logcat -f 1.txt
couldn't open output file: Read-only file system
原创粉丝点击