我不想从adb logcat
命令中查看调试日志。我的手机中有大量调试日志,我不想看到它们。
adb logcat --help
说" *:I "
将仅输出信息日志,但是否有任何选项可以过滤除调试之外的所有日志。
从此处的文档中,当您指定日志级别过滤器时,它将显示该级别及更高级别的所有消息。级别指定为:
日志消息的标记是一个短字符串,指示消息源自的系统组件(例如,“视图”表示视图系统)。
优先级是以下字符值之一,从最低到最高优先级排序:
- V:详细(最低优先级)
- D:调试
- 一:信息
- W:警告
- E:错误
- F:致命的
- S:静音(最高优先级,从未打印任何内容)
...
以下过滤器表达式显示所有标签上优先级为“警告”或更高的所有日志消息:
adb logcat *:W
因此,考虑到这一点,通过您提到的过滤器*:I
将记录除详细和调试日志之外的所有内容。
除非您打算显示 Verbose 以及其他日志级别,否则我认为您不能这样做,因为指定 Verbose 包括 Verbose 之上的任何内容。
如果是这种情况,对特定标签而不是特定日志级别或两者的某种组合进行过滤可能对您很有用。
adb logcat *:I
将显示优先级为 INFO 及更高的 所有日志。
优先级是以下字符值之一,从最低到最高优先级排序:
- V - 详细(最低优先级)
- D——调试
- 我——信息
- W——警告
- E - 错误
- F——致命的
- S — Silent(最高优先级,从未打印任何内容)
以上信息可在 使用 Logcat 写入和查看日志中找到
要在某些华为设备上启用日志记录:
拨打*#*#2846579#*#*
选择“项目菜单”
选择“背景设置”
选择“日志设置”
选择“日志切换”
启用“登录”
选择“日志级别设置”
启用“调试”
按“返回”键
选择“转储和记录”
启用“打开转储和日志”
按“返回”键 5 次返回主屏幕。
重启手机。
LogCat 现在应该可以工作了。
logcat
不会让您仅显示调试,但您可以显示调试及更高版本(调试、信息、警告、错误、致命):
adb logcat YourLogTag:D *:S
*:S
禁止来自其他应用程序的日志。
您可以通过管道传输结果grep
以仅显示调试:
adb logcat YourLogTag:D *:S | grep "D YourLogTag"
如果您使用的是zsh,例如Catalina OSX而不是 bash,您可能需要执行以下命令:
使用 --- --- 用下面的任何内容noglob adb logcat *:E
替换E。
或者,您也可以使用 --- adb logcat '*:E'
--- (引号)
V: Verbose
D: Debug
I: Info
W: Warning
E: Error
F: Fatal
S: Silent
原因是 Zsh 将通配符解释为您想要扩展以该字母结尾的文件,而不需要引号或 noglob 前缀。
您可以使用其包名称为特定应用程序创建过滤器。