Logcat过滤?

9

我希望从日志中过滤掉除了我的应用程序进程之外的所有内容。我知道可以指定优先级级别,但我想做得更多。我想要摆脱手机中记录的其他所有东西。我该怎么做?

3个回答

10
如果您在Eclipse调试视图中查看日志,只需点击“创建筛选器”按钮(绿色加号)即可轻松完成此操作。如果没有使用Eclipse,则可以按照以下命令行指定筛选器(Android文档中的示例):
这是一个筛选表达式的示例,它抑制了除具有“ActivityManager”标记、优先级为“Info”或更高级别的所有日志消息以及所有具有“MyApp”标记、优先级为“Debug”或更高级别的日志消息之外的所有日志消息:
adb logcat ActivityManager:I MyApp:D *:S

不使用Eclipse ;) 在终端中运行ADB。我发现如果我将其单独运行会更容易些。 - LuxuryMode
@LuxuryMode:添加了adb的解释。 - Graham Borland
谢谢Graham。当我这样做时,我只看到--------- beginning of /dev/log/system --------- beginning of /dev/log/main。这是因为我的应用程序中没有日志标签吗?我想只能看到我的应用程序进程,而不必在每个活动或其他内容中添加标签。如果有的话,是否有一种简单的方法来定义整个应用程序的标签,如果有意义的话? - LuxuryMode
标签是您传递给 Log 函数作为第一个参数的任何内容。没有针对每个应用程序标记的额外选项。 - Graham Borland
好的,那我知道我可以过滤掉日志中经常出现的特定内容,比如GSMDataConnection。我以前做过,但是不记得怎么做了... - LuxuryMode
"*:S"非常重要,可以将所有其他输出静音!例如,为了仅查看来自Chromium的“console.log()”输出,我使用adb logcat“*:S”“chromium” - Jens Hauke

1

现在你将自动获得它....
更新到ADT插件版本14,其中logcat将自动会话过滤器
它会过滤你特定应用程序(包)中的日志


0

通过命令行过滤logcat可以通过将文本字符串设置为静音来完成,例如WifiStatetracker:S。这将摆脱任何带有WifiStateTracker的内容。您可以使用多个参数,例如WifiStatetracker:S dhcpcd:S BatteryService:S。我不知道匹配方案是如何工作的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接