Android adb logcat

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012005313/article/details/80382317

之前打印的日志都是在 Android Studiologcat 窗口中查看,下面学习使用命令行的方式进行 logcat 的打印和过滤


参考:

logcat 命令行工具

Android Studio 上如何使用LogCat

Android 定制自己的日志工具 《第一行代码》

Android log日志记录方法


主要内容


logcat 简介

logcatAndroid 提供的一个用于打印日志的工具

Android 系统中默认设置了这个工具

查找 logcat 位置

which logcat 

logcat 命令位置

/system/bin/logcat

使用方式

3 种方式使用 logcat 打印日志

  • 可以通过 IDE(比如 Android Studio)提供的 logcat 窗口查看打印的日志
  • 可以通过 adb 命令使用 logcat 在本地计算机进行日志查看
  • 通过 adb 命令进入模拟器或者所连设备的 shell 命令窗口,进行 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

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"

参考

grep 同时满足多个关键字和满足任意关键字


中文乱码

在使用过程中,发现输出中文会有乱码,在网上找到解释,就是说这个和本地计算机的命令行窗口的默认字符集有关,Android 系统使用字符集为 utf-8,而中文环境下窗口的默认字符集为 GBK

打开命令行窗口,输入如下命令即可:

chcp 65001

参考

cmd 命令进行adb logcat 中文乱码问题

猜你喜欢

转载自blog.csdn.net/u012005313/article/details/80382317
今日推荐