Android开发中,使用Logcat来查看日志是常态,本文将介绍一些Logcat的使用技巧。
一、日志格式与工具栏功能介绍
1、日志信息组成
- 日志信息组成:日志时间、进程和线程的Id、tag、包名、日志的等级和内容。
2、工具栏功能介绍
二、过滤日志
日志一般有很多无用的信息,此时就需要过滤日志,找到想要的日志信息。Logcat 提供了很多过滤器,方便我们找到想要的日志信息。
- 在Logcat中,可分别指定:
tag
、package
、message
三个过滤器来过获取指定的日志。 tag
:显示包含指定tag的日志,如:tag:Test 显示tag包含 Test 的日志package
:显示包含指定包名的日志,如果只想显示当前应用的日志,可以使用package:minemessage
:显示包含指定字符串的日志。
1、正向匹配过滤
如打印tag:Test
的日志信息 示例如下:
tag:Test
:匹配包含所有Test的tag。- 完全匹配 :使用
tag=:Test
2、反向匹配过滤
Logcat还支持反向匹配,反向匹配过滤使用非常地简单,只需要加上-,比如说 -tag:Test
就是不显示 tag 包含 Test 的日志。
需要注意 :- 标识在 message
和 package
都是可用的。
3、正则表达式
Logcat还支持正则表达式,使用非常地简单,只需要加上~,如message~:
后面接正则表达式。
低版Android Studio : 在 Logcat 搜索框右侧勾选 Regex 选项。
核心语法速查表:
示例一:message~:"onCreate"
示例二:message~:"-onCreate"
4、时间过滤
Logcat使用age进行时间过滤,值要指定为数字,后跟表示时间单位的字母:s 表示秒,m 表示分钟,h 表示小时,d 表示天。
需要注意:age 后面跟的数字是以电脑时间为基准的。因此需要确保电脑的时间与手机的时间保持一致。
5、特殊过滤
Logcat支持使用 level
日志等级 和 is
日志类型来匹配。
示例一:level:info
示例二:is:error
is
显示指定的日志类型。目前有三种:
- is:crash 只显示应用崩溃(原生或 Java)的日志条目。
- is:stacktrace 只显示任何类似 Java 堆栈轨迹的日志信息,而不管日志级别如何。
- is:firebase 只显示 Firebase 库打印的日志
6、组合多个过滤器
示例一:多条件组合过滤
结合 包名过滤 和正则表达式:
kotlin
package:com.example.app && message~"Failed to load.*"
- 效果 :仅显示包名为
com.example.app
且消息包含Failed to load
的日志。
示例一:时间范围 + 正则匹配
kotlin
time:2023-10-01..2023-10-02 && message~"OutOfMemory"
- 效果:查找 10月1日至2日期间的内存溢出日志。
掌握正则表达式能极大提升 Logcat 的调试效率,建议结合具体场景灵活运用! 🔍🚀