47

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

4

7 回答 7

54

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

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

更复杂的过滤也是可能的。例如,这里的搜索过滤器显示来自android.process.mediaorcom.android.camera应用程序的消息,这些消息在消息文本中至少有一个数字 ( \d) 并带有dalvikvmorAndroidRuntime标记:

app:android.process.media|com.android.camera tag:dalvikvm|AndroidRuntime text:\d

截屏

一个简短而有用的过滤器是tag:^(?!dalvikvm)删除所有那些嘈杂的 Dalvik 日志。

还值得一提的是,您可以通过在您希望禁用的部分的末尾放置垂直条来快速禁用过滤器的任何部分(例如,在上面的示例中放置|在之后app:android.process.media|com.android.camera有效地禁用按应用程序名称进行过滤,同时仍然保留按标签和文本)。

于 2012-09-28T14:57:14.347 回答
27

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

例如,当单击+并弹出一个对话框以创建新过滤器时,为您的过滤器命名,然后在其中一个字段(例如 TAG)中输入com.lampreynetworks|Bluetooth,您将看到包含com.lampreynetworks和的所有标签的输出Bluetooth。'*' 在这里是隐含的,好像 TAG 的任何部分都包含将显示的任何文本。另请注意,OR 栏之间不能有空格!

我没有尝试将“by TAG”和“by(其他选项)”结合起来,但不知何故我有一种行不通的感觉。

于 2012-01-20T11:51:54.123 回答
9

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

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

“日志标签”字段接受 Java 正则表达式,所以这样做:

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

与您指定的那些标签完全匹配。您可以使用正则表达式更经济/高效/无论如何,这取决于您想要解决多少问题。

于 2011-11-15T17:14:02.177 回答
2

我只是从命令行执行此操作。每个 adb 过滤器都有一个不同的终端。然后,如果您将它们并排排列,您就可以很好地了解正在发生的事情。

于 2012-11-13T00:54:03.490 回答
2

现在是不可能的。@see http://groups.google.com/group/android-developers/browse_thread/thread/17356ef7bdf1550f?pli=1 我也希望它是......

于 2011-07-05T18:45:09.400 回答
1

我看到的唯一方法是Create a Filter using PID让您的应用程序的每一条日志消息都显示在该过滤器中。我想知道这是否可以通过tag当前版本的ADT for eclipse 中的名称来实现。

于 2011-02-12T10:18:49.857 回答
1

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

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

于 2011-02-14T00:18:04.180 回答