程序员

adb logcat过滤日志

2019-11-08  本文已影响0人  liuye099

常用的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

过滤日志的几种方式:

  1. 清除日志缓冲区:
    logcat 有缓存,如果仅需要查看当前开始的 log,需要清空之前的。
    $ adb locat -c

  2. 根据日志优先级过滤日志
    $ adb logcat *:#
    Log日志级别:
    V: 详细日志(默认)
    D: 调试信息
    I :正常使用时的日志信息
    W: 警告
    E:错误
    F:运行时发生的致命错误
    所有的优先级都自动包括比它高的优先级,因此 adb logcat *:W包括警告、错误、致命信息。

  3. 根据标签过滤日志
    第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使用
号比较保险。

  1. 采用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缓冲区

上一篇下一篇

猜你喜欢

热点阅读