以下内容为了规避平台的差异性都是进入adb shell之后的操作。

1. 查看logcat 帮助信息

logcat -h

adb logcat 查看日志命令行用法_日志输出

命令选项解析:

  • ”-s”选项 : 设置输出日志的标签, 只显示该标签的日志;
  • ”-f”选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;
  • ”-r”选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;
  • ”-n”选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;
  • ”-v”选项 : 设置日志的输出格式, 注意只能设置一项;
  • ”-c”选项 : 清空所有的日志缓存信息;
  • ”-d”选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;
  • ”-t”选项 : 输出最近的几行日志, 输出完退出, 不阻塞;
  • ”-g”选项 : 查看日志缓冲区信息;
  • ”-b”选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;
  • ”-B”选项 : 以二进制形式输出日志;

下面是不带参数的日志输出

adb logcat 查看日志命令行用法_优先级_02


输出指定标签内容 :

”-s”选项 : 设置默认的过滤器, 如 我们想要输出 “hwcomposer” 标签的信息, 就可以使用adb logcat -s hwcomposer 命令;

logcat -s hwcomposer

adb logcat 查看日志命令行用法_adb_03

输出日志信息到文件 :
– ”-f”选项 : 该选向后面跟着输入日志的文件, 使用adb logcat -f /sdcard/log.txt 命令, 注意这个log文件是输出到手机上,需要指定合适的路径。

logcat -f /sdcard/log.txt & # #这里的&符号表示后台执行

重定向输出
–“>”输出 : “>” 后面跟着要输出的日志文件, 可以将 logcat 日志输出到文件中, 使用adb logcat > log 命令, 使用more log 命令查看日志信息;

logcat > /sdcard/log
Crtl+C
more /sdcard/log

adb logcat 查看日志命令行用法_优先级_04

设置日志输出格式:
– ”-v”选项 : 使用adb logcat -v 命令

  • time 命令, 可以啥看日志的输出时间;
  • threadtime 命令, 可以啥看日志的输出时间和线程信息;
  • ”brief”格式 : 这是默认的日志格式” 优先级 / 标签 (进程ID) :
  • ”tag”格式 : ” 优先级 / 标签 : 日志信息”
  • ”thread”格式 : ” 优先级 ( 进程ID : 线程ID) 标签 :
  • ”raw”格式 : 只输出日志信息, 不附加任何其他 信息, 如 优先级 标签等,
  • ”long”格式:” [ 日期 时间 进程ID : 线程ID 优先级 / 标签] 日志信息

清空日志缓存信息

adb logcat -c

将缓存日志输出

adb logcat -d

查看日志缓冲区信息

adb logcat -g

加载日志缓冲区

adb logcat -b

输出最近的5行日志

adb logcat -t 5

2. 过滤项解析
过滤项格式 : [:priority] , 标签:日志等级, 默认的日志过滤项是 ” *:I ” ;

  • V : Verbose (明细);
  • D : Debug (调试);
  • I : Info (信息);
  • W : Warn (警告);
  • E : Error (错误);
  • F: Fatal (严重错误);
  • S : Silent(Super all output) (最高的优先级, 可能不会记载东西);

显示 Error 以上级别的日志;

logcat *:E

adb logcat 查看日志命令行用法_优先级_05


过滤指定标签等级日志 :

adb logcat WifiHW:D *:S

3. 使用管道过滤日志

logcat | grep keyword;
logcat | grep -i keyword;//忽略大小写