Android日志系统主要由logd守护进程进行管理,liblog提供读写日志的接口,longcat提供读取日志的参数命令;
logcat抓log方法:adb logcat命令,可以加条件过滤。
日志抓取前使用adb logcat -c命令来清除缓冲区。logcat -vtime | grep XXX
日志的过滤并重定向到文件中的例子:adb logcat *:E > test.log
示例:
日志信息的输出
logcat -c //清除logcat日志
logcat -vtime | grep "字符串"
logcat -v threadtime > /data/logcat.log &
logcat -G 8M; logcat -vtime > /data/logcat.log & //拓展缓冲区位8M
logcat -g //查看缓冲区大小
日志查看错误关键字:crash、FATAL、FAILED、ERROR
可以通过宏定义日志的标签,并通过adb logcat | crgep “标签”来抓取指定的日志信息。
过滤日志级别
优先级是下面的字符,顺序是从低到高
V — 明细 verbose(最低优先级)
D — 调试 debug
I — 信息 info
W — 警告 warn
E — 错误 error
F — 严重错误 fatal
S — 无记载 silent
应用场景:测试过程中系统突然卡住不能动了、系统直接崩溃了、应用程序无响应,即出现闪退或者
异常的情况下就可以使用adb抓取日志分析原因。
日志缓冲区:main、radio、system、events、crash;
可以使用 -b 指定输出缓冲区
radio:查看包含无线装置/电话相关的缓冲区。
events:查看已经过解译的二进制系统事件缓冲区消息。
main:查看日志缓冲区(默认),不包含系统和崩溃日志消息。
system:查看系统日志缓冲区(默认)。
crash:查看崩溃日志缓冲区(默认)。
all:查看所有缓冲区。