Android - 没有调试日志的adb logcat

Vin*_*oth 42 android

我不想从adb logcat命令中看到调试日志.我手机上有大量的调试日志,我不想看到它们.

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

bri*_*tey 91

此处文档中,当您指定日志级别过滤器时,它将显示该级别及更高级别的所有邮件.级别指定为:

adb logcat *:W
Run Code Online (Sandbox Code Playgroud)

另外,他们从文档中说:

以下过滤器表达式在所有标记上显示优先级为"warning"及更高的所有日志消息:

adb logcat *:W
Run Code Online (Sandbox Code Playgroud)

因此,考虑到这一点,传递您提到的过滤器*:I将记录除Verbose和Debug日志之外的所有内容.

除非您打算显示详细信息以及其他日志级别,否则我认为您不能这样做,因为指定Verbose包含任何高于Verbose的内容.

如果是这种情况,那么过滤特定标记而不是特定日志级别或两者的某种组合可能对您有用.

  • 请记住,如果你使用zsh,你应该用单引号包装`*:W`,所以命令应该是:`adb logcat'*:W'`.([来源](https://github.com/robbyrussell/oh-my-zsh/issues/2901)) (8认同)

Raj*_*esh 13

adb logcat *:I将显示优先级为INFO或更高的所有日志.

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

  • V - 详细(最低优先级)
  • D - 调试
  • 我 - 信息
  • W - 警告
  • E - 错误
  • F - 致命
  • S - 无声(最高优先级,没有任何打印)

使用LogcatWrite和View Logs中提供上述信息

  • 如果这不起作用,请尝试“adb logcat '*:I'” (7认同)

Gra*_*ant 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
Run Code Online (Sandbox Code Playgroud)

原因是 Zsh 将通配符解释为您想要扩展以该字母结尾的文件,而无需引号或 noglob 前缀。


Ima*_*shi 6

要在某些华为设备上启用登录:

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

  • 选择“ ProjectMenu”

  • 选择“背景设置”

  • 选择“日志设置”

  • 选择“日志切换”

  • 启用“登录”

  • 选择“日志级别设置”

  • 启用“调试”

  • 按“返回”键

  • 选择“转储并记录”

  • 启用“打开转储并记录”

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

  • 重新启动手机。

LogCat现在应该可以工作了。


Abe*_*lle 6

logcat 不会让您只显示 Debug,但您可以显示 Debug 及更高版本(调试、信息、警告、错误、致命):

adb logcat YourLogTag:D *:S

*:S抑制来自其他应用程序日志。

您可以通过管道grep传输结果以仅显示调试:

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