按标记名过滤logcat中的输出


151

我正在尝试通过标记名称过滤来自真实设备(而非仿真器)的logcat输出,但我收到的所有消息都是垃圾邮件。我只想从浏览器中读取消息,该消息应该类似于“ browser:”或“ webkit: ”,但是它不起作用...这就是我得到的:

实际产量

Answers:


294

用这个:

adb logcat -s "TAGNAME"

7
谢谢!上面的代码相当于adb logcat *:
s'tagname'–

3
如何过滤出<tagname>?
2011年

我相信过滤的唯一方法是按级别。例如,如果某些应用程序向垃圾邮件发送了Debug,则将logcat级别设置为仅显示信息和更高级别:logcat *:I
某处某人2012年

1
是否可以在-f文件名上使用以上内容?说,我的情况是按TagName过滤日志并转储到文本文件。
绿色妖精

9
Das-“ adb logcat TAGNAME:s”将带有一个嘈杂的标签。
Don Park

56

如果有人像我一样偶然发现此标签,则可以通过在两者之间添加逗号来过滤多个标签,如下所示:

adb logcat -s "browser","webkit"

说明我应将此代码放在哪里。我是一只新蜜蜂。请解释
扎尔ËAhmer

1
@Nepster在终端中键入。
2014年

如果您在Windows上使用cygwin,则可以使用grep ...,是的,这可行。
sgupta '16

12

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

亚行logcat SensorService:S PowerManagerService:S NfcService:S power:I Sensors:E

如果只想设置某些标签的日志级别,则可以逐个标签地进行设置。


9

不依赖ADB shell,只需将其(adb logcat)作为普通的linux输出,然后将其插入即可:

$ adb shell logcat | grep YouTag
# just like: 
$ ps -ef | grep your_proc 

5
这是一个不好的选择,因为发送了很多不必要的流量,并且过滤器显然不起作用。如果一个不相关的进程日志消息恰好包含一些字符串,则会出现。
约翰·史密斯

and the filter obviously won't work, 你有没有尝试过?我已经根据结果粘贴了答案。
沉思为申思维思维

1
问题是在Windows上无法使用grep的问题
sroskelley

1
如果您在Windows上使用cygwin,则可以使用grep ...,是的,这可行。
sgupta '16

6

这是我创建标签的方法:

private static final String TAG = SomeActivity.class.getSimpleName();
 Log.d(TAG, "some description");

您可以使用getCannonicalName

在这里,我有以下TAG过滤器:

  • 任何(*)视图-详细
  • 任何(*)活动-详细
  • 以Xyz(*)开头的任何标签-错误
  • System.out-静音(因为我使用的是登录自己的代码)

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

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.