logcat 的使用技巧

在 Android 开发中,我们一般使用 logcat 来查看日志。这篇文章将介绍一些 logcat 的使用技巧,废话不多说,直接开始。

日志格式与配置

首先我们需要先了解日志由什么组成,如下图所示:

可以看到一般情况下,打印的日志信息有:日志时间、进程和线程的id、tag、包名、日志的等级和内容。

如果你不想要这么多额外的信息,可以选择设置打印日志的格式。第一步先点击如下图的按钮,选择 Modify Views 选项。

然后就会弹出下图的一个配置弹窗。根据需求配置你的 log 信息就可以了。

过滤日志

一般情况下,我们需要日志才能排除问题。但是日志一般有很多无用的信息,此时就需要过滤日志,找到想要的日志信息。logcat 提供了很多过滤器,方便我们找到想要的日志信息。

正向匹配过滤

在 logcat 中,我们可以分别指定 tagpackagemessage 这三个过滤器来过获取指定的日志。package: 显示包含指定包名的日志,如果你想要只显示当前应用的日志,可以使用package:minetag:MyTag 显示tag包含 MyTag 的日志;message: 显示包含指定字符串的日志。

假设打印了以下的日志信息,我们用 tag:test 来过滤日志。

Log.d("test1", "print a")  
Log.d("test2", "print b")  
Log.d("test3", "print c")

结果如下。可以看到 tag:test 匹配了所有包含 test 的 tag。这是因为在 logcat 中 : 表示会匹配包含了当前字符串的日志;如果你想要完全匹配,需要使用 :=,比如说tag=:test 就是只显示 tag 为 test 的日志。

图片

图片

反向匹配过滤

除了正向匹配外,logcat 还支持反向匹配。反向匹配过滤使用非常地简单,只需要加上-,比如说 -tag:test 就是不显示 tag 包含 test 的日志。如下图所示,不存在包含 test 的日志信息。

需要注意,- 标识在 messagepackage 都是可用的。

正则表达式

logcat 支持正则表达式,使用也非常的简单,只需要加上 ~ 就可以了。比如说 message~: 后面就可以接正则表达式了。如下图所示:

时间过滤

logcat 可以使用 age 来进行时间过滤。值要指定为数字,后跟表示时间单位的字母:s 表示秒,m 表示分钟,h 表示小时,d 表示天。例如,age: 5m 只会显示过去 5 分钟内记录的消息。如下图所示:

需要注意:age 后面跟的数字是以电脑时间为基准的。因此需要确保电脑的时间与手机的时间保持一致。

特殊的过滤

除了上面的过滤的方式外,logact 还支持使用 level 日志等级和 is 日志类型来匹配。如下图所示,使用 level 可以只显示指定日志等级的日志信息。

is 是只显示指定的日志类型。目前有三种:

  • is:crash 只显示应用崩溃(原生或 Java)的日志条目。
  • is:stacktrace 只显示任何类似 Java 堆栈轨迹的日志信息,而不管日志级别如何。
  • is:firebase 只显示 Firebase 库打印的日志

Firebase 是谷歌推出的一个移动和 Web 应用开发平台,它提供了一系列的后端服务和工具,旨在帮助开发者更轻松地构建高质量的应用程序。

多个过滤器组合

当在 logcat 中使用多个过滤器时,相同的过滤器视为 or;不同的过滤器则视为 and。比如说 tag:testtag:system_server 就等同于 tag = test || tag = system_server。如下图所示:

而当使用不同的过滤器时,比如说 level:error 和 tag:test 时,就等同于 level = error && tag = test。如下图所示:

其他功能

收藏过滤条件

logcat 支持把过滤器收藏起来,方便下次使用

logcat 工具栏功能介绍

Android logcat 的使用技巧

作者:小墙程序员
链接:https://juejin.cn/post/7414321825751220233
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值