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

Kos*_*tas 119 android filter adb logcat

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

ZoF*_*reX 216

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

tag:^(?!(WifiMulticast|WifiHW|MtpService|PushClient))
Run Code Online (Sandbox Code Playgroud)

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

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

  • 我的愿景立即变得模糊不清!:d (6认同)

Phi*_*o99 70

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

^(?!(tag1|tag2|tag3|tag4))
Run Code Online (Sandbox Code Playgroud)

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


chr*_*zer 50

如果您正在使用adb logcat,可以通过grep管道并使用它的反向匹配:从grep联机帮助页:

v, - invert-match反转匹配感,选择不匹配的行.

例如:

$adb logcat | grep --invert-match 'notshownmatchpattern' 
Run Code Online (Sandbox Code Playgroud)

您可以使用正则表达式扩展它.

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

"/^(?:emails|tags|addresses)"
Run Code Online (Sandbox Code Playgroud)

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


Rin*_*ino 32

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

这将排除具有内容WindowManager,dalvik,...的文本.

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

这将从logcat中排除标签WindowManager,dalvik,....


Ric*_*ich 29

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

adb logcat AlarmManagerService:S PowerManagerService:S *:V
Run Code Online (Sandbox Code Playgroud)

这将包括除了带有AlarmManagerServicePowerManagerService标签的所有日志.

(:S代表"无声",这意味着不会为这些标签打印任何内容; :V代表"详细",这意味着所有其他标签都会打印出来.有关logcatAndroid文档,您可以使用其他选项的更多详细信息.过滤器.)

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

export ANDROID_LOG_TAGS="AlarmManagerService:S PowerManagerService:S *:V"
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用环境变量ANDROID_LOG_TAGS以相同的方式过滤logcat输出。我发现始终将其设置为排除一些垃圾邮件程序很有用。 (2认同)

Bak*_*ker 16

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

例:

(?=(AndroidRuntime|Main|RandomTag))(?!(Audio))
Run Code Online (Sandbox Code Playgroud)

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

排除第二个标签.


Smi*_*gey 10

对于新的 LogcatV2,您应该使用以下示例:

-tag~: chatty|WifiHAL|HwBinder|Light|lsc_nvram|SensorService|thermal_repeater
Run Code Online (Sandbox Code Playgroud)

等等


Ram*_*aya 5

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

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))
Run Code Online (Sandbox Code Playgroud)


Mar*_*ang 5

还可以选择在 Android Studios logcat GUI 中制作自己的过滤器。例如,我对 logcat 中的 OpenGLRenderer 和 ViewRoot 消息感到非常恼火。

在 logcat 中单击 Edit Filter Configuration 并创建一个新过滤器。在日志标签输入中,您可以输入类似的内容^(?!.*(OpenGLRenderer|ViewRoot))并添加其他几个让您烦恼的标签。

过滤 logcat