Android - 不带调试日志的adb logcat

74

我不想看到来自adb logcat命令的调试日志。我的手机上有大量的调试日志,我不想看到它们。

adb logcat --help中说" *:I "只会输出信息日志,但是否有任何选项可以过滤除了调试日志之外的所有日志。

7个回答

161

根据这里的文档,当您指定日志级别过滤器时,它将显示该级别及更高级别的所有消息。 这些级别被指定为:

日志消息的标签是一个简短的字符串,表示消息的来源系统组件(例如,“View”表示视图系统)。

优先级是以下字符值之一,从最低到最高优先级排序:

  • V:冗长(最低优先级)
  • D:调试
  • I:信息
  • W:警告
  • E:错误
  • F:致命
  • S:静默(最高优先级,在该级别上不会打印任何内容)

...

以下过滤表达式显示所有具有“警告”优先级及更高优先级的日志消息,以及所有标签:

adb logcat *:W
所以考虑到这一点,传递你提到的过滤器*:I 将记录除冗长和调试日志之外的所有内容。
除非您的意图是显示冗长以及其他日志级别,否则我认为您不能这样做,因为指定“ verbose”会包括任何高于“ verbose”的内容。
如果是这种情况,对特定标记进行过滤而不是特定日志级别或两者的某种组合可能对您有用。

41
请注意,如果您正在使用zsh,应在*:W周围加上单引号,因此命令应该是:adb logcat '*:W' - Sam

22

adb logcat *:I会显示所有优先级为INFO及以上的日志。

优先级由以下字符值之一表示,按从低到高的顺序排序:

  • V — 冗长模式(最低优先级)
  • D — 调试模式
  • I — 信息模式
  • W — 警告模式
  • E — 错误模式
  • F — 致命错误模式
  • S — 静默模式(最高优先级,在此模式下不会打印任何内容)

上述信息可在 使用Logcat编写和查看日志中找到。


6
如果这个方法不起作用,尝试使用adb logcat '*:I' - laszlo_kiss

10

如果你使用类似于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

由于Zsh解释通配符时会认为您希望展开以该字母结尾的文件,因此不需要用双引号或noglob前缀来包装通配符。

7

logcat无法仅显示Debug,但您可以使用以下命令显示Debug及更高级别的日志(Debug、Info、Warning、Error、Fatal):

adb logcat YourLogTag:D *:S

*:S会抑制其他应用程序的日志。

您可以通过grep将结果导出,以仅显示Debug:

adb logcat YourLogTag:D *:S | grep "D YourLogTag"


1
使用Oh my Zsh shell,这个命令对我有效: adb logcat | grep " E " (如果您不想搜索标签) - Michael Troger

7

要在一些Huawei设备上启用日志记录:

  • 拨打*#*#2846579#*#*

  • 选择“ProjectMenu”

  • 选择“Background Setting”

  • 选择“Log Setting”

  • 选择“Log Switch”

  • 启用“LOG on”

  • 选择“Log level setting”

  • 启用“DEBUG”

  • 按“返回”键

  • 选择“Dump and Log”

  • 启用“Open Dump and Log”

  • 按“返回”键5次返回主屏幕。

  • 重新启动手机。

现在应该可以使用LogCat了。


0
如果您正在寻找特定的应用程序,例如Flutter应用程序,您可以将参数命令串联在一起,如adb logcat *:s flutter:* *:w 这表示: *:s所有内容都应该被静音 flutter:*显示与“flutter”相关的所有内容 *:w显示所有警告及以上级别的内容。

-1

您可以使用应用程序的包名创建特定应用程序的过滤器。


我可以做到,但我想在我的应用程序之外查看日志(如崩溃等),除了那些调试日志。 - Vinoth
我不知道 - 你能演示一下怎么做吗?我可以直接在命令行中执行吗? - Sam Redway

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接