Logcat允许过滤日志,但它的工作方式是这样的:定义过滤器,logcat只显示与过滤器匹配的消息。但是,有没有一种方法可以显示除一些由过滤器定义的标记之外的所有日志?
发布于 2013-01-31 00:54:49
您可以在DDMS Monitor (以及Eclipse或Android Studio)中使用正则表达式输入框和negative look-ahead assertions执行此操作,例如,我使用以下内容从我的日志中排除了大量噪音:
tag:^(?!(WifiMulticast|WifiHW|MtpService|PushClient))
( " Tag :“不是正则表达式的一部分,但告诉LogCat仅将正则表达式应用于标记字段。如果您在保存的过滤器中使用此技巧,则只将正则表达式放入"Tag“输入框中,并省略"tag:”前缀)
在Android Studio的logcat监视器窗格中,您可以通过打开右上角的下拉列表(可能选择了"Show only selected application“)并选择Edit filter Configuration来设置一个已保存的过滤器。创建一个新的logcat筛选器,并将^(?!(WifiMulticast
...etc。在选中Regex
复选框的情况下,在日志标签框中输入))
。
发布于 2015-04-15 02:27:10
如果您想在安卓直播间中根据标签名称排除或过滤某些消息,请进入LogCat window=>Edit过滤配置,在按日志标签(正则表达式)下输入如下内容:
^(?!(tag1|tag2|tag3|tag4))
请注意,没有空格,这一点很重要
发布于 2013-07-04 19:04:59
在shell中,您可以使用如下命令:
adb logcat AlarmManagerService:S PowerManagerService:S *:V
这将包括除带有AlarmManagerService
和PowerManagerService
标签的日志之外的所有日志。
( :S
代表"silent",这意味着不会为这些标记打印任何内容;:V
代表"verbose“,这意味着将为所有其他标记打印所有内容。Android documentation for logcat提供了有关可在过滤器中使用的其他选项的更多详细信息。)
您还可以使用ANDROID_LOG_TAGS
环境变量来设置默认过滤器,例如(在bash中):
export ANDROID_LOG_TAGS="AlarmManagerService:S PowerManagerService:S *:V"
https://stackoverflow.com/questions/5511433
复制相似问题