adb logcat过滤日志

常用的log日志命令

1.打印默认日志数据
Adb logcat
2.需要打印日志详细时间的简单数据
Adb logcat -v time
3.需要打印级别为Error的信息
Adb logcat *:E
4.需要打印时间和级别是Error的信息
Adb logcat -v time *:E
5.将日志保存到电脑固定的位置。比如D:\log.txt

过滤日志的几种方式

1.清除日志缓存区:
logcat有缓存,如果仅需要查看当前开始的log,需要清空之前的
Adb logcat -c
2.根据日志优先级过滤日志
Adb logcat *:#
Log日志级别:V:(详细日志。默认的) D:(调试信息)I:(正常使用时的日志信息)W:(警告)E:(错误)F:(运行时发生的致命错误)
3.根据标签过滤日志
第2条中的根据日志优先级过滤日志通常是跟标签一起使用
语法:adb logcat :priority
Adb logcat :W,其实可以是某个tag,如果没有指明,就表示所有
例子:Log.w(“test”,info);
这句打印通过标签和优先级过滤命令是:adb logcat Test:I
注意:
(1)可以指定多个[TAG:LEVEL ]
(2) level : S 表示为不输出该标签的日志,应为没有大于S级别的日志了
(3)[TAG:LEVEL ] 不会影响其他标签的日志, 所以如果要屏蔽其他log请使用 :S
4.采用grep正则表达式过滤
1.只输出需要的内容,例如:简单的匹配一行当中的某个字符串
Adb logcat | grep MyApp
Adb logcat | grep -i myapp #忽略大小写
Adb logcat | grep -color=auto -i myapp #设置匹配字符串颜色
2.显示同一个进程的所有输出
Adb logcat | grep --color=auto $pid

Logcat命令列表

-d 将日志显示在控制台后退出
-c 清理已存在的日志
-f 将日志输出到文件(把日志输出到手机指定目录)
Adb logcat -f /socard/test.txt

-v 设置日志输入格式控制输出字段,默认的是brief格式
如果需要的是普通日志那么使用-v time 就可以了
如果需要查看现线程区别使用-v threadtime 就可以了,其他日志基本也是少用的。

Brief —显示优先级/标记和原始进程的PID(默认格式)
Process —仅显示进程PID
Tag --仅显示优先级/标记
Thread --仅显示进程:线程和优先级/标记
Raw —显示原始的日志信息,没有其他的元数据字段
Time —显示日期,调用时间。优先级/标记,PID
long—显示所有的元数据字段并且用空行分隔消息内容

Adb logcat -v thread //使用thread输出格式
注意-v 选项中只能指定一种格式

`adb logcat` 是 Android 开发工具包的一部分,主要用于查看 Android 设备的系统日志以及应用程序日志。当你想要从大量的日志信息中快速找出特定的内容时,利用 `adb logcat` 的过滤功能就能帮助你高效地定位所需信息。下面是如何使用 `adb logcat` 过滤指定字符串的方法: ### 使用基本语法 打开命令提示符或终端窗口,并输入以下命令: ```bash adb logcat -v brief | grep "目标字符串" ``` 这里,`-v brief` 表示以简明的方式显示日志,而 `grep "目标字符串"` 则是用来过滤显示那些包含 `"目标字符串"` 的日志行。比如,如果你想查找所有包含 `"Error"` 的错误信息,你可以输入: ```bash adb logcat -v brief | grep "Error" ``` ### 详细说明各个参数: #### `-v brief` - **解释**:这表示使用简明模式显示日志,意味着日志将只包含必要的信息(时间戳、进程 ID 和线程 ID),而不是每个条目的完整堆栈跟踪。 #### `|` - **作用**:管道符 (`|`) 是用于将命令输出传给另一个命令或脚本的功能。在这个上下文中,它将 `adb logcat -v brief` 输出的结果作为 `grep` 命令的输入。 #### `grep "目标字符串"` - **功能**:`grep` 命令用于在文件流中搜寻匹配给定模式的所有行。在这里,“目标字符串”是你希望在日志条目中找到的文本。 ### 更高级的应用 如果你想过滤日志来自某个特定的进程或者应用程序,你可以将进程名或包名加入到 `grep` 中: ```bash adb logcat -v brief com.example.appName.* ``` 这里的 `com.example.appName.*` 将会匹配名为 `com.example.appName.` 的所有包名,即该应用所有的日志。 ### 注意事项 - 确保你在正确的设备上运行此命令,通过 `adb devices` 检查你的设备是否已连接并列出。 - 如果设备正在运行多个应用程序,则需要清楚是哪个应用程序的日志你需要查看。可以尝试使用不同的包名进行过滤测试。 - 对于大型日志集,频繁使用 `grep` 可能会影响性能。考虑在日志收集之后再做详细的搜索分析。 通过上述步骤,你可以有效地使用 `adb logcat` 来过滤和查找你关心的日志信息,提高解决问题的效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值