关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。
一、导读
我们继续总结学习基础知识,温故知新。
本页介绍了命令行 logcat 工具,包括查看和过滤日志,以及讲日志写入文件。
二、概览
Logcat 是一个命令行工具,用于转储系统消息日志,包括从您的应用使用 Log 类写入的消息。
logcat还是比较简单的,我们在此只记录一下我们日常工作可能会用的比较多的一些用法。
三、日常用法
3.1 面板介绍
3.2 日志过滤
标签 | 描述 | 否定和正则表达式 |
---|---|---|
tag: | 与日志条目的 tag 字段匹配。 | tag: tag~: tag=: -tag: -tag~: -tag=: |
package: | 与日志记录应用的软件包名称匹配。 | package: package~: package=: -package: -package~: -package=: |
process: | 与日志记录应用的进程名称匹配。 | |
message: | 与日志条目的消息部分匹配。 | message: message~: message=: -message: -message~: -message=: |
level: | 与指定或更高严重级别的日志匹配,例如 DEBUG。 | |
is: | is 键一种特殊匹配 | is:crash is:firebase is:stacktrace |
age: | 如果条目时间戳是最近的,则匹配。值要指定为数字,后跟表示时间单位的字母:s 表示秒,m 表示分钟,h 表示小时,d 表示天。例如,age: 5m 只会过滤过去 5 分钟内记录的消息。 |
3.2.1 否定和正则表达式
否定的表示方式是在字段名称前面加上 -。例如,-tag:MyTag 匹配 tag 不包含字符串 MyTag 的日志条目。
正则表达式匹配通过在字段名称中附加 ~ 来表示。例如 tag~:My.*Tag。
否定和正则表达式修饰符可以结合使用。例如,-tag~:My.*Tag。
3.2.2 逻辑运算符和圆括号
查询语言支持由 & 和 | 以及圆括号表示的 AND 和 OR 运算符,eg:
(tag:foo | level:ERROR) & package:mine
如果未应用逻辑运算符,查询语言会自动将具有相同键的多个非否定 key-value 过滤器项视作 OR,并将其他过滤器项视作 AND。
tag:foo tag:bar package:myapp
求值结果为:
(tag:foo | tag:bar) & package:myapp
但是:
tag:foo -tag:bar package:myapp
求值结果为:
tag:foo & -tag:bar & package:myapp
- is:crash 匹配表示应用崩溃(原生或 Java)的日志条目。
- is:stacktrace 匹配表示任何类似 Java 堆栈轨迹的日志条目,而不管日志级别如何。
3.3 将日志保存到文件
[adb] shell logcat [<option>] ... [<filter-spec>] ...
adb logcat > 12345.txt
四、 推荐阅读
[SQL 专栏]
[数据结构与算法]
[Android学习专栏]