使用logcat
logcat是sdk提供查询设备运行的日志命令打印工具,可以使用它来把循环缓存区的设备日志信息转到控制台中,可以在控制台运行adb命令,也可以用以cmd方式打开,执行adb命令
logcat 所需语法:
adb logcat [option] ... [filter] ...
以下是常用的几种查询方式:
1. adb logcat -f 列如:adb logcat -f /sdcard/log.text 把设备上的日志信息写入到设备上 的sd卡中的log文件(txt格式)中
2. adb logcat -d 将日志打印到控制台
3. adb logcat -g 显示给定日志缓冲区的大小
4. adb logcat -n 设置滚动日志数量 如:adb -n 4
5. adb logcat -v 设置控制台log打印信息的格式
常用以下几种格式:
brief :显示优先级、标签以及生产消息进程的PID
process:只显示PID
tag:只显示优先级和标签
raw:显示原始日志信息,不带任何其他字段
time:显示日期、调用事件、优先级、标签以及每条消息所在线程的PID
threadtime:显示日期、调用事件、优先级、标签以及每条消息所
在线程的PID和线程的ID(TID)
long :显示所有字段并使用空行分隔消息
6. adb logcat -b 显示指定缓冲区中的日志输出。
缓存区可以是以下几种之一:
radio 包含于音频/电话相关的消息
events 包含于事件相关的消息 (如销毁一个app页面的事件)
main 主日志缓存区在(默认)(主日志输出)
7. adb logcat -r 每当到达给定千字节数时轮转日志文件。默认值是16,而且此选项需要-f选项
8. adb logcat –help 关于logcat的一些常用命令信息
日志与logcat
日志中的每一条消息都有一个标签。标签是一个字符串,通常用于标识发出消息的组件。每条消息还包含一个相关的优先级,用于确定该消息的重要程度。
优先级如下:
- V:Verbose(最低优先级)
- D:Debug
- I:Info
- W:Warning
- E:Error
- F:Fatal
- S:Slient(最高优先级,所有的事情均在日志中忽略)
关于日志过滤的使用
- 使用adb命令,可以使用过滤器表达式来控制logcat的输出,使用正确的标记组合有助于关注与研究对象相关的输出。过滤表达式采用tag:priority的形式。列如,adb logcat MyBroadcastReceiver:D。
- 使用过滤控件,他们分别是Loglevel列表、文本输入控件、通过预置相关的选项创建自定义过滤规则。(详细如下图)