我不想看到来自adb logcat
命令的调试日志。我的手机上有大量的调试日志,我不想看到它们。
adb logcat --help
中说" *:I "
只会输出信息日志,但是否有任何选项可以过滤除了调试日志之外的所有日志。
根据这里的文档,当您指定日志级别过滤器时,它将显示该级别及更高级别的所有消息。 这些级别被指定为:
日志消息的标签是一个简短的字符串,表示消息的来源系统组件(例如,“View”表示视图系统)。
优先级是以下字符值之一,从最低到最高优先级排序:
- V:冗长(最低优先级)
- D:调试
- I:信息
- W:警告
- E:错误
- F:致命
- S:静默(最高优先级,在该级别上不会打印任何内容)
...
以下过滤表达式显示所有具有“警告”优先级及更高优先级的日志消息,以及所有标签:
所以考虑到这一点,传递你提到的过滤器adb logcat *:W
*:I
将记录除冗长和调试日志之外的所有内容。
除非您的意图是显示冗长以及其他日志级别,否则我认为您不能这样做,因为指定“ verbose”会包括任何高于“ verbose”的内容。
如果是这种情况,对特定标记进行过滤而不是特定日志级别或两者的某种组合可能对您有用。
adb logcat *:I
会显示所有优先级为INFO及以上的日志。
优先级由以下字符值之一表示,按从低到高的顺序排序:
- V — 冗长模式(最低优先级)
- D — 调试模式
- I — 信息模式
- W — 警告模式
- E — 错误模式
- F — 致命错误模式
- S — 静默模式(最高优先级,在此模式下不会打印任何内容)
上述信息可在 使用Logcat编写和查看日志中找到。
adb logcat '*:I'
。 - laszlo_kiss如果你使用类似于Catalina OSX上的zsh而不是bash,你可能需要执行以下命令:
使用 --- noglob adb logcat *:E
--- 将下面的E替换为任何内容。
或者你也可以使用 --- adb logcat '*:E'
---(引号内)。
V: Verbose
D: Debug
I: Info
W: Warning
E: Error
F: Fatal
S: Silent
logcat
无法仅显示Debug,但您可以使用以下命令显示Debug及更高级别的日志(Debug、Info、Warning、Error、Fatal):
adb logcat YourLogTag:D *:S
*:S
会抑制其他应用程序的日志。
您可以通过grep
将结果导出,以仅显示Debug:
adb logcat YourLogTag:D *:S | grep "D YourLogTag"
adb logcat | grep " E "
(如果您不想搜索标签) - Michael Troger要在一些Huawei设备上启用日志记录:
拨打*#*#2846579#*#*
选择“ProjectMenu”
选择“Background Setting”
选择“Log Setting”
选择“Log Switch”
启用“LOG on”
选择“Log level setting”
启用“DEBUG”
按“返回”键
选择“Dump and Log”
启用“Open Dump and Log”
按“返回”键5次返回主屏幕。
重新启动手机。
现在应该可以使用LogCat了。
adb logcat *:s flutter:* *:w
这表示:
*:s
所有内容都应该被静音
flutter:*
显示与“flutter”相关的所有内容
*:w
显示所有警告及以上级别的内容。您可以使用应用程序的包名创建特定应用程序的过滤器。
*:W
周围加上单引号,因此命令应该是:adb logcat '*:W'
。 - Sam