之前打印的日志都是在 Android Studio
的 logcat
窗口中查看,下面学习使用命令行的方式进行 logcat
的打印和过滤
参考:
主要内容
logcat
简介
logcat
简介
logcat
是 Android
提供的一个用于打印日志的工具
Android
系统中默认设置了这个工具
查找 logcat
位置
which logcat
logcat
命令位置
/system/bin/logcat
使用方式
有 3
种方式使用 logcat
打印日志
- 可以通过
IDE
(比如Android Studio
)提供的logcat
窗口查看打印的日志 - 可以通过
adb
命令使用logcat
在本地计算机进行日志查看 - 通过
adb
命令进入模拟器或者所连设备的shell
命令窗口,进行logcat
的操作和使用
adb logcat
adb logcat
使用 adb
命令先进入 Android
系统
adb shell
输入命令 logcat
既可以查看日志
当然,这种情况等同于在 AS
中没有设置过滤器的情况,无数的日志密密麻麻,根本无法查找需要的信息
设置输出日志等级
通过设置优先级,过滤掉低优先级的日志,使用方式如下
adb logcat <tag1>:<priority1> <tag2>:<priority2>
示例如下
adb logcat ActivityManager:I MyApp:D *:S
<tag>
表示标签,<priority>
表示优先级,可以同时设置多个标签和优先级
Note:设置了指定标签的指定优先级后,仅能够过滤掉低于该优先级的指定标签的日志,其它标签的日志没有影响,如果要排除其它日志的影响,需要加入 *:S
,该参数表示将所有标签的优先级设为“静默”,从而确保系统仅显示带有指定标签的日志消息
priority
可选字符值
V — 详细(最低优先级)
D — 调试
I — 信息
W — 警告
E — 错误
F — 致命
S — 静默(最高优先级,不会打印任何内容)
清除缓存日志
使用 logcat
打印日志时会输出缓存区的日志,可以通过参数 -c
清除,然后再进行打印。使用方式如下:
logcat -c && logcat ...
logcat grep
logcat grep
在 Android
系统中可以配合使用命令 grep
进行日志的输出
打印包含指定关键字的日志
logcat | grep "关键字"
忽略大小写
logcat | grep -i "KeyWord"
或者
logcat | grep --ignore-case "KeyWord"
同时包含多个关键字
logcat | grep "KeyOne" | grep "KeyTwo" | grep "KeyThree"
包含其中一个关键字
grep -E 正则表达式
比如
grep -E "KeyOne|KeyTwo|KeyThree"
参考
中文乱码
在使用过程中,发现输出中文会有乱码,在网上找到解释,就是说这个和本地计算机的命令行窗口的默认字符集有关,Android
系统使用字符集为 utf-8
,而中文环境下窗口的默认字符集为 GBK
打开命令行窗口,输入如下命令即可:
chcp 65001