adb logcat过滤日志
常用的log日志命令:
1:打印默认日志数据
adb logcat
2:需要打印日志详细时间的简单数据
adb logcat -v time
3:需要打印级别为Error的信息
adb logcat *:E
4:需要打印时间和级别是Error的信息
adb logcat -v time *:E
5:将日志保存到电脑固定的位置,比如D:\log.txt
adb logcat -v time >D:\log.txt
过滤日志的几种方式:
-
清除日志缓冲区:
logcat 有缓存,如果仅需要查看当前开始的 log,需要清空之前的。
$ adb locat -c -
根据日志优先级过滤日志
$ adb logcat *:#
Log日志级别:
V: 详细日志(默认)
D: 调试信息
I :正常使用时的日志信息
W: 警告
E:错误
F:运行时发生的致命错误
所有的优先级都自动包括比它高的优先级,因此 adb logcat *:W包括警告、错误、致命信息。 -
根据标签过滤日志
第2条中的根据日志优先级过滤日志通常是跟标签一起使用。
语法:adb logcat <tag>[:priority]
(tag表示标签,priority输出的级别)
adb logcat :W,其实可以是某个tag,如果没有指明,就表示所有。
例子:Log.w("Test", info );
这句打印通过标签和优先级过滤命令是:adb logcat Test:I
注意:
(1)可以指定多个[TAG:LEVEL ]
(2) level : S 表示为不输出该标签的日志,应为没有大于S级别的日志了
(3)[TAG:LEVEL ] 不会影响其他标签的日志, 所以如果要屏蔽其他log请使用 :S
(4)网上有网友说使用tag标签命令,并没有成功过滤。并且使用tag后,后面的级别也无效了,所以tag使用号比较保险。
- 采用grep正则表达式过滤
(1)只输出需要的内容,例如:简单的匹配一行当中的某个字符串
adb logcat | grep MyApp
adb logcat | grep -i myapp #忽略大小写。
adb logcat | grep --color=auto -i myapp #设置匹配字符串颜色
(2)显示同一个进程的所有输出
adb logcat | grep –color=auto $pid
Logcat命令列表:
-d 将日志显示在控制台后退出
-c 清理已存在的日志
-f <filename> 将日志输出到文件(把日志输出到手机指定目录)
adb logcat -f /sdcard/test.txt
-v <format>设置日志输入格式控制输出字段,默认的是brief格式
如果需要的是普通日志那么使用-v time就可以了,
如果需要查看线程区别使用 -v threadtime就可以了,其他日志基本也是少用的。
brief — 显示优先级/标记和原始进程的PID (默认格式)
process — 仅显示进程PID
tag — 仅显示优先级/标记
thread — 仅显示进程:线程和优先级/标记
raw — 显示原始的日志信息,没有其他的元数据字段
time — 显示日期,调用时间,优先级/标记,PID
long —显示所有的元数据字段并且用空行分隔消息内容
adb logcat -v thread //使用 thread 输出格式
注意-v 选项中只能指定一种格式。
-b <buffer>加载一个可使用的日志缓冲区供查看,默认值是main。
radio — 查看包含在无线/电话相关的缓冲区消息
events — 查看事件相关的消息
main — 查看主缓冲区 (默认缓冲区)
adb logcat -b radio //查看radio缓冲区