Android 之 Logcat 的使用技巧 —— 新手指南

Android开发中,使用Logcat来查看日志是常态,本文将介绍一些Logcat的使用技巧。

一、日志格式与工具栏功能介绍

1、日志信息组成

  • 日志信息组成:日志时间、进程和线程的Id、tag、包名、日志的等级和内容。

2、工具栏功能介绍

二、过滤日志

日志一般有很多无用的信息,此时就需要过滤日志,找到想要的日志信息。Logcat 提供了很多过滤器,方便我们找到想要的日志信息。

  • 在Logcat中,可分别指定:tagpackagemessage 三个过滤器来过获取指定的日志。
  • tag:显示包含指定tag的日志,如:tag:Test 显示tag包含 Test 的日志
  • package:显示包含指定包名的日志,如果只想显示当前应用的日志,可以使用package:mine
  • message:显示包含指定字符串的日志。

1、正向匹配过滤

如打印tag:Test的日志信息 示例如下:

  • tag:Test:匹配包含所有Test的tag。
  • 完全匹配 :使用tag=:Test

2、反向匹配过滤

Logcat还支持反向匹配,反向匹配过滤使用非常地简单,只需要加上-,比如说 -tag:Test 就是不显示 tag 包含 Test 的日志。

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

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 的调试效率,建议结合具体场景灵活运用! 🔍🚀

相关推荐
A__tao4 小时前
SQL 转 PHP Eloquent、Doctrine ORM, 支持多数据库
android·ide·android studio
QING6185 小时前
Kotlin 协程库中 StateFlow 与 SharedFlow 的区别与使用指南
android·kotlin·app
水w19 小时前
【Android Studio】如何卸载干净(详细步骤)
android·开发语言·android studio·activity
别说我什么都不会20 小时前
OpenHarmony 5.0Release 开发的在线音乐应用卡片
app·harmonyos
Yang-Never21 小时前
Open GL ES ->纹理贴图,顶点坐标和纹理坐标组合到同一个顶点缓冲对象中进行解析
android·java·开发语言·android studio·贴图
QING6181 天前
Kotlin 操作符与集合/数组方法详解——新手指南
android·kotlin·app
QING6181 天前
Kotlin 中 == 和 === 的区别
android·kotlin·app
QING6182 天前
Kotlin 扩展方法(Extension Functions)使用详解
android·kotlin·app