Android 中的 Logcat

1,674 阅读2分钟

Logcat 是一个用于转储系统日志的工具,包括发生错误时的堆栈信息及使用 Log 类主动打印的日志

在命令行中使用

adb logcat

或者

adb shell
#logcat

参数

  • -b 指定日志 buffer
    • radio 包含天线,通话相关日志
    • events 包含系统的二进制日志
    • main 主 buffer(default)
    • system 系统日志(default)
    • crash 崩溃日志(default)
    • all 所有 buffer
    • default 指定 main,system,crash

示例

logcat -b main -b radio -b events

logcat -v main,radio,events
  • -c 清除选定 buffer 并退出
  • -e 使用正则表达式过滤
  • -m 打印指定行数
  • -d 将日志输出到屏幕并退出
  • -f 将日志输出到指定文件
  • -g 打印指定 buffer 的大小并退出
  • -n 指定最大转储数量
  • -r 单个日志文件达到指定值时转储
  • -n -r -f 需要一起使用,在大量日志输出时每个文件达到指定大小就会新建文件保存(似乎只能在shell中使用)
  • -s 等同于过滤器 “*:S”
  • -v 设置日志输出格式
    • brief 显示优先级,tag和pid
    • long 显示所有元素,并以空行间隔
    • process 显示pid
    • raw 显示原始日志
    • tag 显示优先级和tag
    • thread 显示优先级,pid,tid
    • threadtime (default)显示日期,调用时间,优先级,tag,pid,tid
    • time 相比 threadtime 少了 tid
  • -D 在每个 buffer 之间打印分割线
  • -t 打印最近的指定行数(包含 -d)
  • -t '
adb logcat -t '01-26 20:52:41.820'
  • -L 打印自重启以来的日志
  • -B 以二进制的形式输出日志
  • -S 打印日志统计信息, 帮助找出打印太多日志的进程
  • -G 设置日志缓冲区的大小
  • -p 打印当前的黑白名单
  • -P '<white_and_black_list>' 指定黑白名单
  • --pid= 打印指定pid的日志

过滤日志

日志优先级

  • V
  • D
  • I
  • W
  • E
  • F
  • S

示例

过滤tag为“ActivityManager”,级别为I或以上的日志(尾部需加上*:S)

adb logcat ActivityManager:I *:S