adb logcat使用方法

发布时间 2023-06-26 12:21:52作者: 常疯大虾

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压缩包