如何使用Android adb logcat按TAG名称排除某些邮件?

时间:2011-04-01 09:19:33

标签: android filter adb logcat

Logcat允许过滤日志,但它的工作原理如下:您定义过滤器,logcat仅显示与过滤器匹配的消息。但有没有办法显示所有日志除了过滤器定义的一些TAG?

11 个答案:

答案 0 :(得分:214)

您可以使用正则表达式输入框和negative look-ahead assertions在DDMS Monitor(以及Eclipse或Android Studio)中执行此操作,例如,我使用以下内容从日志中排除了大量噪音:

tag:^(?!(WifiMulticast|WifiHW|MtpService|PushClient))

(“tag:”不是正则表达式的一部分,但告诉LogCat只将正则表达式应用于Tag字段。如果在保存的过滤器中使用此技巧,则只将正则表达式放在“标记”中“输入框,并省略”tag:“前缀)

在Android Studio的logcat监视器窗格中,您可以通过打开右上角的下拉列表(可能选中“仅显示所选应用程序”)并选择“编辑过滤器配置”来为此设置已保存的过滤器。创建一个新的logcat过滤器并放置^(?!(WifiMulticast ...等。 “日志标记”框中的)),选中了Regex复选框。

答案 1 :(得分:67)

如果您想在Android Studio中按标记名称排除或过滤某些邮件,请转到LogCat窗口=>编辑过滤器配置,然后在"下按日志标记(正则表达式)输入以下内容:"

^(?!(tag1|tag2|tag3|tag4))

请注意,没有空格,这很重要

答案 2 :(得分:50)

如果您使用adb logcat,可以通过grep管道并使用它的反向匹配: 来自grep manpage

  

v, - 反转匹配           反转匹配感,选择不匹配的行。

例如:

$adb logcat | grep --invert-match 'notshownmatchpattern' 

您可以使用regular expressions扩展此功能。

以下是此类表达式的示例:

"/^(?:emails|tags|addresses)"

这个将检查发生的任何一个,grep然后不会列出它们。

答案 3 :(得分:31)

^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$

这将排除包含内容WindowManager,dalvik,...

的文本

tag:^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$

这将从logcat

中排除标签WindowManager,dalvik,....

答案 4 :(得分:28)

从shell中,您可以使用如下命令:

adb logcat AlarmManagerService:S PowerManagerService:S *:V

将包含除AlarmManagerServicePowerManagerService标记之外的所有日志。

:S代表“无声”,这意味着不会为这些标签打印任何内容; :V代表“详细”,这意味着将为所有其他标签打印所有内容。{ {3}}详细介绍了您可以在过滤器中使用的其他选项。)

您还可以使用ANDROID_LOG_TAGS环境变量来设置默认过滤器,例如(在bash中):

export ANDROID_LOG_TAGS="AlarmManagerService:S PowerManagerService:S *:V"

答案 5 :(得分:16)

结合正面和负面前瞻功能,实现更强大的过滤效果。

示例:

(?=(AndroidRuntime|Main|RandomTag))(?!(Audio))

包含第一个嵌套括号中的标签。

排除第二个标签。

答案 6 :(得分:2)

这是我用来忽略三星系统日志的过滤器列表。也可以与其他设备一起使用。

  

Logcat->编辑过滤器配置->日志标签

^(?!(PowerUI|PowerPlanningReceiver|BatteryService|SamsungPhoneWindowManager|MotionRecognitionService|AudioService|APM_AudioPolicyManager|SensorService|StorageManager|SignalClusterView|BatteryService|TelephonyManager|UsbDeviceManager|KeyguardUpdateMonitor|BatteryController|ActivityManager|LauncherAppsService|AppsModel|DataLoader|PackageManager|LauncherApps|ContactsImsCommon|ImsUtil|ImsSettingsProvider|DeviceConfigManager|WifiService|BackupManagerService|PersonaManagerService|DefaultDialerManager|ResourceType|NetworkUIGlobals|NetworkProxy|FileWriteThread|ReflectUtil|PhoneApp|SamsungAlarmManager|display|DeviceStorageMonitorService|wrapperGPS|io_stats|GnssLocationProvider|KeyguardServiceBoxContainer|ConnectivityService|SSRM|TLC_TIMA_PKM_initialize|mc_tlc_communication|TeeDriverClient|TLC_TIMA_PKM_measure_kernel|AutomaticBrightnessController|BatteryUtils|WifiConnectivityManager|Launcher|IconView|ApplicationPackageManager|LiveIconLoader|WifiScanningService|WifiHAL|WifiScanController|ApplicationPolicy|SELinux|TimaKeyStoreProvider|ActivityThread|zygote|GservicesProvider|GoogleHttpClient|cr_ChildProcessConnect|WificondControl|Netd|Tethering|ContactsImsCommon|ImsConstants|tnet-jni|BatteryStatsService|SignalClusterView|LiveIconManager|BitmapCacheContainer|com.samsung.android.app.powerplanning.utils.BatteryUtils|ReflectField|cr_ChildConnAllocator|TinLoadingFailTracker|WifiPermissionsUtil|EventHandler_FLP|android.hardware.wifi@1.0-service|BluetoothAdapter|bt_btm|WifiPermissionsUtil|GeofencerStateMachine|Places|GCoreUlr|BeaconBle|Sensors|SLocation|ContactsProvider_EventLog|WificondScannerImpl|AlarmManager|AlarmManagerEXT|MultiDex|NetworkSecurityConfig|DnsProxyListener|dalvik-internals|mobileconfig|SsacManager|ImsPhoneStateManager|VolteServiceModule|PdnController|PowerManagerService|GameManagerService|NoSync|SensorManager|DisplayPowerController|NetworkController|SamsungAnalytics111040|tlcFidoAuthnr|InputReader|FlashlightController|KeyguardWallpaperController|OpenGLRenderer|EasyMuteController|Vibrator|VibratorService|PowerManagerUtil|LightsService|WindowManager|InputDispatcher|InputReader|CustomFrequencyManagerService|SystemUIAnalytics|SamsungAnalytics|swipe|PanelView|BadgeCache|MARsPolicyManager|MARsDBManager|KeyguardClockPage|ScanManager|RegiMgrBase|secImsManager|GeolocationController|MultiSimUtils|CarrierText|Mms|NetworkNotificationUI2|CommandListener|ReschedulableTimer|RCS-ContactsImsCommon|Settings|DmConfigModule|NotificationMgr2|PhoneMultiSimUtils|PhoneProxy|VideoCapabilities|AudioCapabilities|SAIV_FACE|FaceController|FaceService|SamsungAnimationCreator|ImageWallpaper|Finsky|VirtualScreen|PagedView|DragLayer|HomeContainer|ImsServiceStub|DmConfigHelper|TZ))

答案 7 :(得分:1)

一种简单的方法是仅过滤要查看的标签。

adb logcat -s "Tag1" -s "Tag2" -s "Tag3"

只会显示那些标签。

答案 8 :(得分:1)

还有一个选项可以在Android Studios logcat GUI中创建自己的过滤器。 例如。 logcat中的OpenGLRenderer和ViewRoot消息使我非常恼火。

在logcat中,单击“编辑过滤器配置”,然后创建一个新的过滤器。 在“日志标签输入”中,您可以输入类似^(?!.*(OpenGLRenderer|ViewRoot))的内容,并添加其他一些使您烦恼的标签。

Filter for logcat

答案 9 :(得分:0)

在Eclipse Logcat视图中,没有这样的选项。但是,您可以使用日志级别来排除日志级别过低的任何邮件。 E. g。将其设置为I(nfo)不会显示D(ebug)和(V)erbose消息。

答案 10 :(得分:0)

这是我收集的最常见的烦人标签

^(?!.*(OpenGLRenderer|ViewRoot|ForceDarkHelper|Looper|PlayCore|AudioTrack|SurfaceUtils|cr_ChildProcessConn|FA|ActivityThread|DynamiteModule|Perf|DynamitePackage|EgretLoader|cr_LibraryLoader|BpBinder|chatty|FeatureParser|MediaCodec|ExtendedACodec|MapperHal|OMXClient|VideoCapabilities|Gralloc3|MetadataUtil|AdrenoGLES|chromium|DpmTcmClient|WebViewFactory|cr_CachingUmaRecorder|AdrenoUtils|cr_media|AudioManager|cr_SpareChildConn|Chrome_InProcGp|Choreographer|AdInternalSettings|Keep-Alive|Vary|pool-15-thread-|WifiMulticast|WifiHW|MtpService|PushClient|EGL_emulation|OpenGl*|InputReader|art|dalvik|Environment|DataRouter|AlarmManager|WindowManager|PhoneStatusBar|ActivityManager|ResourceType|PackageManager|gralloc|Gnss|NetRec|ResolverController|GAv4|AsyncOperation|AppOps|WificondControl|aofp|wifi|netmgr|ctxmgr|BestClock|FirebaseInstanceId|android.os.Debug|memtrack|netd|system_server|StrictMode|bluetooth|NetworkMonitor|FA|BroadcastQueue|ConnextivityService|WakeLock|HttpClientWrapper|RAWR|Tenor|BgTask|WifiService|BluetoothAdapter|UpdateStatsService|AppIdleHistory|Connectivity|VelvetNetworkClient|WorkerManager|EGL_emulation|chatty|gralloc|InputReader|ActivityThread|ActivityTaskManager|UsageStatsService|ocess.gservice|DropBoxManagerService|EventLogChimeraService|PContextMetricsRunner))