一、简介
Android系统的日志分为两部分:
(1)底层的Linux内核日志,输出到/proc/kmsg
(2)Android日志,输出到/dev/log
二、Android日志
命令格式:[adb] logcat [<option>] ... [<filter-spec>] ...
常用用法列举如下:
1、按级别过滤日志
Android的日志分为以下几个优先级:
(1)V---VERBOSE(最低,输出最多日志)
(2)D---DEBUG
(3)I---INFO
(4)W---WARNING
(5)E---ERROR
(6)F---FATAL
(7)S---SILENT(最高,不输出任何日志)
按某级别过滤日志则会将该级别及以上的日志输出
比如:adb logcat *:W :输出WARNING、ERROR、FATAL日志
2、按 tag 和级别过滤日志:<filter-spec> 可以由多个 <tag>[:priority] 组成
比如:adb logcat ActivityManager:I MyApp:D *:S
(1)输出tag ActivityManager的Info以上级别日志
(2)输出tag MyApp的debug以以上级别日志
(3)输出其他tag的silent级别日志(即屏蔽其他tag日志)
3、按照一定格式输出日志:-v选项运行logcat命令
adb logcat -v <format>
(1)brief:显示优先级、标记以及发出消息的进程PID
(2)long:显示所有元数据字段,并使用空白行分隔消息
(3)process
:仅显示 PID
(4)raw
:显示不包含其他元数据字段的原始日志消息
(5)tag
:仅显示优先级和标记
(6)thread:
:旧版格式,显示优先级、PID 以及发出消息的线程的 TID。
(7)process
:仅显示 PID
(8)threadtime
(默认值):显示日期、调用时间、优先级、标记、PID 以及发出消息的线程的 TID
(9)time
:显示日期、调用时间、优先级、标记以及发出消息的进程的 PID
比如:adb logcat -v long ActivityManager:I *:S
4、查看备用日志缓冲区:-b
选项运行 logcat
命令
备用缓冲区:
(1)radio:查看包含无线装置、电话相关消息的缓冲区
(2)events:查看已经过解译的二进制系统事件缓冲区消息
(3)main:查看主日志缓冲区(默认),不包含系统和崩溃的日志消息
(4)system:查看系统日志缓冲区(默认)
(5)crash:查看崩溃日志缓冲区(默认)
(6)all:查看所有缓冲区
(5)default:报告main、system和crash缓冲区
5、清空日志:adb logcat -c