最近在用一个红米的手机测试,简直就是个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)).*$ |