按标记名过滤logcat中的输出

mun*_*nch 148 android logcat android-logcat

我试图通过标签名称来过滤来自真实设备(而不是模拟器)的logcat输出,但是我得到的所有消息都是垃圾邮件.我只想阅读浏览器中的消息,这些消息应该类似于"browser:"或"webkit: ",但它不起作用......这就是我得到的:

实际产出

sat*_*sat 282

用这个:

adb logcat -s "TAGNAME"
Run Code Online (Sandbox Code Playgroud)

  • Das - "adb logcat TAGNAME:s"将是一个嘈杂的标签. (9认同)
  • 谢谢!以上相当于adb logcat*:s'tagname' (6认同)
  • 如何过滤OUT <tagname>? (3认同)

小智 57

如果有人像我一样偶然发现这个问题,你可以通过在中间添加一个逗号来过滤多个标签,如下所示:

adb logcat -s "browser","webkit"
Run Code Online (Sandbox Code Playgroud)


mko*_*bit 13

另一个选项是设置特定标记的日志级别:

adb logcat SensorService:S PowerManagerService:S NfcService:S power:I Sensors:E

如果您只想为某些标记设置日志级别,则可以逐个标记地执行此操作.


Siw*_*申思维 9

不要依赖于ADB shell,只需将它(adb logcat)视为正常的linux输出,然后将其pip:

$ adb shell logcat | grep YouTag
# just like: 
$ ps -ef | grep your_proc 
Run Code Online (Sandbox Code Playgroud)

  • 这是一个糟糕的选择,因为发送了大量不必要的流量,过滤器显然不起作用.如果一个不相关的进程记录了恰好有一些字符串的消息就会出现. (4认同)

小智 6

以下是我创建标记的方法:

private static final String TAG = SomeActivity.class.getSimpleName();
 Log.d(TAG, "some description");
Run Code Online (Sandbox Code Playgroud)

你可以使用getCannonicalName

这里我有以下TAG过滤器:

  • 任何(*)视图 - VERBOSE
  • 任何(*)活动 - VERBOSE
  • 任何以Xyz(*)开头的标签 - ERROR
  • System.out - SILENT(因为我使用登录我自己的代码)

这是我在终端输入的内容:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
Run Code Online (Sandbox Code Playgroud)