Android LogCat过滤器,用于Eclipse中的多个标签

时间:2011-02-12 09:26:57

标签: android filter filtering logcat

单击“创建过滤器”无法从文档中找出如何为两个或多个标记创建过滤器。如果我有两个标记com.test.TestClassAcom.test.TestClassB,如何创建一个显示这两个类的日志的过滤器?我看到你如何只为某些标签启动ADB,但是如何在eclipse中完成呢?请提供详情谢谢。在eclipse中创建新过滤器时,我到底需要输入什么?

7 个答案:

答案 0 :(得分:54)

作为Brain Reinhold的pointed,您可以将标签过滤器与竖线|结合使用(这显然意味着逻辑“或”)。您还可以在logcat搜索框中使用该语法(以及其他正则表达式)(通过前面带有tag:前缀的标记):

tag:com.test.TestClassA|com.test.TestClassB

也可以进行更复杂的过滤。例如,此处是搜索过滤器,可显示来自android.process.mediacom.android.camera个应用的消息,这些应用在消息文本中至少有一位数字(\d)并标有{{1} }或dalvikvm标记:

AndroidRuntime

Screenshot

一个简短且有用的过滤器是app:android.process.media|com.android.camera tag:dalvikvm|AndroidRuntime text:\d,它删除了所有那些嘈杂的Dalvik日志。

还值得一提的是,您可以通过在要禁用的部分的末尾放置垂直条来快速禁用过滤器的任何部分(例如,在上面的示例中tag:^(?!dalvikvm)之后放置|有效地禁用按应用程序名称过滤,同时仍然保留按标签和文本过滤。

答案 1 :(得分:27)

在Eclipse的SDK的最新版本中,它现在显示了logcat的两个版本(一个已弃用);在未经过补充的版本中,可以使用OR条组合过滤器:|

例如,当点击+并打开对话框来创建新过滤器时,请为过滤器命名,然后在其中一个字段中(例如TAG)输入com.lampreynetworks|Bluetooth然后将会看到包含com.lampreynetworksBluetooth的所有代码的输出。这里隐含'*',好像TAG的任何部分包含将显示的任何文本。另请注意,OR条之间必须没有空格!

我没有尝试将'by TAG'和'by(some something option)'结合起来,但不知怎的,我感觉工作。

答案 2 :(得分:9)

2月12日凌晨2:58,AndroidDevTime写道:

  

如果我有两个标签   com.test.TestClassA和com.test.TestClassB如何创建过滤器   这显示了这两个类的日志?

“Log tag”字段接受Java正则表达式,所以这样做:

^ com.test.TestClassA $ | ^ com.test.TestClassB $

与您指定的标签完全匹配。对于正则表达式,你可能会更经济/更有效/取决于你想要多少钱。

答案 3 :(得分:2)

答案 4 :(得分:2)

我只是从命令行执行此操作。为每个adb过滤器设置不同的终端。然后,如果你将它们并排排列,你就可以很清楚发生了什么。

答案 5 :(得分:1)

我看到的唯一方法是Create a Filter using PID,以便您的应用程序的evey日志消息将显示在该过滤器中。我想知道这是否可以通过当前版本的 ADT 中的tag名称进行日食。

答案 6 :(得分:1)

使用proclogcat:http://devtcg.blogspot.com/2010/04/logcat-improved.html

它允许您根据包名称进行过滤。