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

相关推荐
我命由我1234539 分钟前
Android 开发问题:为 PDFView 设置一个带有黑色边框的背景 drawable,但边框没有生效
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
熊猫钓鱼>_>1 天前
2026 鸿蒙全栈开发实战:从新能力落地到多设备上架的完整路径
华为·架构·app·harmonyos·arkts·鸿蒙·运营
我命由我123452 天前
Android 开发问题:Cannot resolve method ‘repeat‘ in ‘String‘
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
执明wa4 天前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
紫_龙5 天前
window 维护多版本Android studio
android·ide·android studio
vistaup5 天前
Android studio 历史版本
android·ide·android studio
柒星栈5 天前
PHP 源码怎么加密防破解?三套方案实战指南
开发语言·php·android studio
ZZH_AI项目交付6 天前
同一套前摄心率算法,为什么 iPhone 16 Pro 稳,iPhone XR 会失准?
ios·app·ai编程
我命由我123456 天前
Android 开发问题:java.lang.NoSuchMethodError:No virtual method readAllBytes()
android·java·java-ee·kotlin·android studio·android-studio·android runtime
凡泰AI7 天前
如何借助MCP打通企业APP内部服务:从统一调用到小程序承接
小程序·uni-app·app·mpaas·mcp·小程序容器