Android异常分析 - 简书 (jianshu.com)
如何打印Android的kernel log - 青山牧云人 - 博客园 (cnblogs.com)
Android日志系统介绍以及日志分析 - 知乎 (zhihu.com)
https://www.cnblogs.com/kevincode/p/3839881.html
一、Android 日志分类
Android日志主要分为kernel、radio、event、main四种,相关描述如下:
1. Kernel log:包含多线程并发的信息,进程所使用的内存情况,进程访问磁盘的请求信息。kernel log属于Linux内核的log ,可以通过读取/proc/kmsg或者通过串口来抓取。adb 抓取kernel log的命令如下(需要有root权限):
adb shell cat /proc/kmsg > /sdcard kernel.log
2. radio log:抓取Android RIL层 log,在调试Android通信方面的代码时,这个Log非常关键。抓取命令如下:
adb logcat -b radio >/sdcard radio.log
3. main log:main log和我们在eclipse里通过DDMS中看到的log是一致的。抓取命令如下:
adb logcat -b main >/sdcard main.log
4.event Log:系统级别的event。比如垃圾回收,Activity管理状态,系统的watchdogs,其他底层的Activity。event log属于 system log,平时可以跟在main log之后。抓取命令如下:
adb logcat -b events -v time > /sdcard event.log
(-v time表示在log中加入每条log打印的时间)
5.完整log: adb logcat -b选项是可以复用的,因此我们抓取所有Log的命令就是复用了-b选项。抓取命令如下:
adb logcat -b main -b system -b radio -b events -v time > /sdcard all.log
6.其他如下:
frameworks/base/core/java/android/util/Log.java //用于记录main log
frameworks/base/core/java/android/util/Slog.java //用于记录framework log
frameworks/base/telephony/java/android/telephony/Rlog.java //用于记录radio log
frameworks/base/core/java/com/android/internal/os/RuntimeInit.java //内部记录了crash log
二、Android 日志级别与过滤