Android 系统的日志分为两部分,底层的 Linux内核日志输出到 /proc/kmsgAndroid 的日志输出到 /dev/log

1. Android 日志

[adb] logcat [<option>] ... [<filter-spec>] ...

1.1 按级别过滤日志

Android的日志分为如下几个优先级(priority):

  • V —— Verbose(最低,输出得最多)
  • D —— Debug
  • I —— Info
  • W —— Warning
  • E —— Error
  • F —— Fatal
  • S —— Silent(最高,啥也不输出)

按某级别过滤日志则会将该级别及以上的日志输出。
比如,命令 adb logcat *:W 会将 WarningErrorFatalSilent 日志输出。

在 macOS 下需要给 :W 这样以 * 作为 tag 的参数加双引号,如 adb logcat ":W",不然会报错 no matches found: *:W

1.2 按 tag 和级别过滤日志

<filter-spec> 可以由多个 <tag>[:priority]组成。

比如,命令:

adb logcat ActivityManager:I MyApp:D *:S

表示输出 tag ActivityManagerInfo以上级别日志,输出 tag MyAppDebug 以上级别日志,及其它 tagSilent级别日志(即屏蔽其它tag日志)。

1.3 日志格式

可以用 adb logcat -v <format>选项指定日志输出格式。
日志支持按以下几种 <format>

  • brief (默认格式) <priority>/<tag>(<pid>): <message>
  • process <priority>(<pid>) <message>
  • tag <priority>/<tag>: <message>
  • raw <message>
  • time <datetime> <priority>/<tag>(<pid>): <message>
  • threadtime <datetime> <pid> <tid> <priority> <tag>: <message>
  • long [ <datetime> <pid>:<tid> <priority>/<tag> ] <message>

1.4 清空日志

adb logcat -c

2. 内核日志

adb shell dmesg

在这里插入图片描述

Logo

更多推荐