Logcat allows filtering logs but it works like that: You define filters and logcat only displays messages which matches filters. But is there a way to display all logs EXCEPT some TAGs defined by filters?
12 Answers
You can do this from within DDMS Monitor (and also Eclipse or Android Studio) with the regular expression input box and negative look-ahead assertions, for example I am excluding a lot of noise from my log with the following:
tag:^(?!(WifiMulticast|WifiHW|MtpService|PushClient))
(The "tag:" isn't part of the regular expression, but tells LogCat to only apply the regex to the Tag field. If you use this trick in a saved filter then put just the regular expression in the "Tag" input box, and omit the "tag:" prefix)
In Android Studio's logcat monitor pane, you can set up a saved filter for this by opening the dropdown in the upper right (it may have "Show only selected application" selected) and selecting Edit Filter Configuration. Create a new logcat filter and put ^(?!(WifiMulticast
...etc. ))
in the Log Tag box, with the Regex
checkbox checked.
-
-
7
-
-
Worked like charm! Many thanks. Add word "dalvikvm" also in it. It's most annoying in logcat. – Atul Jun 04 '16 at 15:42
-
Thank you, this is very helpful. I also add "jdwp" to the list of excluded words. – LarsH Feb 21 '17 at 14:45
-
1Answer with logcat filtering is the proper one - https://stackoverflow.com/a/17468665/828237 – kwesolowski Nov 24 '17 at 09:37
-
In Android Studio 2022, the filter does not accept `tag:^(?!)`. Use `-tag:` instead. – WebViewer Feb 02 '23 at 08:00
If you want to exclude or filter certain messages by tag name in Android studio, goto the LogCat window=>Edit Filter configuration, and enter the following under "by Log Tag(regex): "
^(?!(tag1|tag2|tag3|tag4))
Note that there are no spaces, this is important

- 5,581
- 2
- 46
- 54
-
this answer works in intellij 15's logcat > Edit Filter Configuration which brings up a modal titled, "Create New Logcat Filter" . – petey Feb 23 '16 at 19:22
-
1
-
This only prevents logs with that tag from being rendered to the log though. Monitor still gets swamped with those calls in the background and it pushes the non "tag1|tag2|etc" calls out of the buffer. Is there a way around that? – TheBestBigAl Jul 31 '17 at 09:57
-
Answer with logcat filtering is the proper one - https://stackoverflow.com/a/17468665/828237 – kwesolowski Nov 24 '17 at 09:36
-
If you are using adb logcat
you could pipe it through grep and use it's inverted matching:
From the grep manpage:
v, --invert-match Invert the sense of matching, to select non-matching lines.
For example:
$adb logcat | grep --invert-match 'notshownmatchpattern'
You can extend this by using regular expressions.
Here is an example of such an expression:
"/^(?:emails|tags|addresses)"
This one would check for either of the given to occur, grep would then not list them.

- 7,856
- 14
- 81
- 132

- 3,219
- 3
- 28
- 44
-
1@zest `grep` is a standard unix command. For windows you may try `find /V "notshownmatchpattern"`. P.S. Apparently, the adb shell also has a `grep`. But it is not the same as the standard unix `grep`! – PCoder Mar 09 '13 at 08:00
-
Yeah, I found it already, findstr - suck, possible to install powershell or grep (for windows:), the same as Linux as was wrote in readme, but not so much in practice) – Henadzi Rabkin Mar 09 '13 at 12:03
-
No adays, I would just adivce for windows to install git with git commandline tools. This would install all basic unix commandline tools for windowze. – chris polzer Aug 27 '14 at 08:47
-
-
@PCoder can you please write whole command for doing the same with windows CMD? – Raghav Satyadev Jun 22 '16 at 10:41
From the shell, you can use a command like:
adb logcat AlarmManagerService:S PowerManagerService:S *:V
which will include all logs apart from those with the AlarmManagerService
and PowerManagerService
tags.
(The :S
stands for "silent", which means nothing will be printed for those tags; the :V
stands for "verbose" which means everything will be printed for all other tags. The Android documentation for logcat has more details of other options you can use in the filters.)
You can also use the ANDROID_LOG_TAGS
environment variable to set up default filters, e.g. (in bash):
export ANDROID_LOG_TAGS="AlarmManagerService:S PowerManagerService:S *:V"

- 7,348
- 4
- 34
- 54
-
This is a good suggestion and works from the command line with no pipelines. You should update your answer imho to explain that the ":S" part is going to only emit Severe messages for the named components (which hardly ever happen). Again, good answer. People should vote up this one... – Chris Markle Jul 12 '13 at 16:30
-
1@ChrisMarkle According to the docs the `S` is for 'silent'. I've updated the answer to explain this though, as you suggest. – Rich Jul 12 '13 at 21:28
-
2You can filter logcat output in the same way using the environment variable ANDROID_LOG_TAGS. I find it useful to have it always set to exclude some of the more spammy processes. – emidander Feb 06 '14 at 21:13
^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$
This will exclude texts having contents WindowManager,dalvik,...
tag:^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$
This will exclude tags WindowManager,dalvik,... from logcat
-
Some more : `^(?!(WifiMulticast|WifiHW|MtpService|PushClient|EGL_emulation|OpenGl*|InputReader|art|dalvik|Environment|DataRouter|AlarmManager|WindowManager|PhoneStatusBar|ActivityManager|ResourceType|PackageManager|gralloc*))` – Gurupad Mamadapur Mar 11 '18 at 06:22
-
And more: (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)) – Graeme Jan 30 '20 at 16:20
Combine both positive and negative lookahead for more powerful filtering.
Example:
(?=(AndroidRuntime|Main|RandomTag))(?!(Audio))
Tags in the first nested parentheses are included.
Tags in second are excluded.

- 24,730
- 11
- 100
- 106
With new LogcatV2 you should use this example:
-tag~: chatty|WifiHAL|HwBinder|Light|lsc_nvram|SensorService|thermal_repeater
and so on

- 409
- 1
- 8
- 12
There is also the option to make your own filter in Android Studios logcat GUI. E.g. I was very annoyed by OpenGLRenderer and ViewRoot messages in logcat.
In the logcat click on Edit Filter Configuration and create a new filter.
In the Log Tag Input you can type in something like ^(?!.*(OpenGLRenderer|ViewRoot))
and add several other Tags that are annoying you.

- 951
- 1
- 15
- 36
Here's a list of filters that I've been using to ignore Samsung system logs. would work with other devices too.
Logcat -> Edit Filter Configuration -> Log Tag
^(?!(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))

- 69,473
- 35
- 181
- 253

- 671
- 1
- 10
- 16
An easy way to do this is by simply filtering in only the tags you want to see.
adb logcat -s "Tag1" -s "Tag2" -s "Tag3"
Will bring up only those tags.

- 3,025
- 3
- 44
- 53

- 51
- 2
This is The Most common Annoying Tags i gathered
^(?!.*(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))

- 1,773
- 3
- 15
- 48
Within the Eclipse Logcat view there's not such an option. However you can make use of the log level to exclude any message whose log level is too low. E. g. setting it to I(nfo) doesn't display D(ebug) and (V)erbose messages.

- 19,326
- 11
- 90
- 127
-
Well I forgot to mention that I am using that on command prompt / inside a phone to read logs. And each time I tap a screen it shows InputReader / InputDispatcher messages which are just flooding the screen. Now I see also setting filters to "InputReader:S InputDispatcher:S" works :) Thanks for an answer! – Kostas Apr 01 '11 at 09:53