oynix

于无声处听惊雷,于无色处见繁花

AndroidStudio logcat过滤器

最近在用一个红米的手机测试,简直就是个log轰炸机,果然为发热而生。

一般来说,常规方式可以在logcat里限定进程,只显示当前进程的log,大多是时候这样是可以拦住不需要的log信息的,但也不是每个时候都好使,这个时候可以手动添加一些过滤器,拦住那些漏网之鱼。

在logcat右边的过滤器选择菜单里,点击Edit Filter Configuration,就可以增加/删除过滤器了。它支持多个维度过滤,比如Log Tag,Log Message,Package Name,PID,Log Level,前三者还可以支持正则表达式。

我用的是Log Tag和Log Message的正则过滤,二者配合效果更佳,总结下来,就是一个正则表达式,配上多个关键词。来看看正则的编写过程,

首先,是开头结尾的标记

1
^$

然后,文本内容

1
^.*$

接着,从开头环视,要求不能是某个词,比如miui

1
^(?!(miui)).*$

想到,miui可能不是在第一个位置出现,再处理一下

1
^(?!.*(miui)).*$

继续,再多加几个关键词

1
^(?!.*(miui|Battery|HBM)).*$

最后,完成。

经过我长达几分钟聚精会神盯着,总共找到了这么多不需要的关键词,还我一个清净的logcat

1
^(?!.*(subsystem_ramdump|NsdService|MDnsDS|system/bin/netd|subsystem_ramdu|CloudMusicNativePlayer|QSTile|MiuiNetworkPolicy|IDM-BonjourGovernor|NtpTrustedTime|netd|MI_STAT|chatty|OemNetd|Bluetooth|Battery|IdProviderImpl|ui-mini|PowerCheckerService|QtiCarrierConfigHelper|qdlights|CompatibilityInfo|MicroMsg|KeyguardUpdateMonitor|Miui|Audio|Matrix|xiaomi|libc|KeyguardIndication|PowerChecker|tycenter|hwservicemanager|CloudControlHelper|Launcher|ScreenView|HwcComposer|SDM|Ethernet|Traffic|PushService|MiBridge|StatusBar|miui|HotPool|ACDB|msm|Zeus|TeaLog|WifiService|Dhcp|Power|HBM|light|QSControl|SharedPreferences|ResolverController|cnss|systemui|mars|Track|PackageManager|Connectivity|Perf|kloadclassifie|HwBinder|Gesture|MiShare|tftp_server|SplashConfigModel|EventBus|ForceDarkHelper|Looper|ls|AggregateListener|octvm)).*$
------------- (完) -------------
  • 本文作者: oynix
  • 本文链接: https://oynix.com/2022/04/c282d7e3711f/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

欢迎关注我的其它发布渠道