adb logcat使用方法
adb logcat命令使用
一.android日志介绍
1.打印日志的原理
android日志系统包括一个内核驱动程序和用于存储日志消息的内核缓冲区。一个用于查看日志消息的独立程序logcat。
2.日志的类型
4个不同日志缓冲区,为系统的不同部分提供日志记录,所有的缓冲区都在设备的/dev/log下:
/dev/log/main:主日志是与应用相关的日志,使用android.util.log打印
/dev/log/radio: radio用于电话相关信息
/dev/log/event: 事件日志使用android.util.EventLog打印,输出二进制格式的日志,入口包含二进制tag,存储在/system/etc/event-log-tags
/dev/log/system:系统日志是系统框架层相关的部分,使用android.util.slog打印
二.安卓日志等级
Verbose:冗余信息,开发日志的详细信息。会打印调用三方依赖的信息
Debug:调试信息,开发应用相关的调试信息
Info:全部信息
Warn: 警告信息,即将发生错误,或者已有错误不影响程序运行,try..cach跳过的代码
Error:错误信息,比如应用crash时输出的信息
Fatal:严重错误,比error级别更高,android系统内核发出的日志中,比如应用无响应或强制关闭。一般要配合trace.txt分析。/data/anr/trace.txt中查看(需要root权限)
Silent:静默,最高级别,什么都不输出,用于关闭logcat输出的过滤器参数
三.adb logcat打印日志
1.adb logcat
打印所有类型的日志,包含系统日志、应用日志
2.adb logcat -c
清除缓存
3.adb logcat -v [time/tag/thread]
-v按照格式输出,按时间/tag/thread格式输出日志
4.adb logcat -v time >H:\Desktop\log.txt
把日志文件重定向到本地的log.txt文件中
5.adb logcat -v time 10 *:E | findstr “12343” > H:\Desktop\log.txt
按照时间格式,打印12343号进程的error级别前10行日志,到log.txt文件
6.adb logcat -v time 10 *:E | findstr “com.cubic.home” > H:\Desktop\ log.txt
按照时间格式,打印12343号进程的error级别前10行日志,到log.txt文件
7.adb logcat -v time -b [main/radio/system] *:E | findstr “12343” > H:\Desktop\log.txt
按照时间格式,打印12343号进程的error级别main日志,到log.txt文件
四.Trace.txt文件下载
当应用程序发生anr时,会在系统的/data/anr目录下,生成一个trace.txt文件,开发在定位anr问题时,会结合这个文件使用,导出文件需要root权限
1.判断是否具有root权限
在cmd命令行输入:adb shell
如果显示$符号,表示未有root权限
如果显示#符号,表示有root权限
2.root权限用户导出trace.txt
在cmd窗口输入:adb shell 进入系统内核
cd /data/anr 进入到tarce.txt目录
Ll 查看是否存在trace.txt文件
adb pull /data/anr/anr.txt F:\anr
通过adb pull 命令把手机系统中的文件,导入到本地电脑的F:\anr文件中
3.非root权限用户使用bugreport导出trace.txt
在cmd命令行输入:adb bugreport >F:\anr\bugreport.txt
根据bugreport中的路径去下载完整的,bugreport压缩包