답변:
사용하는 경우 adb logcat
grep을 통해 파이프하고 반전 된 일치를 사용할 수 있습니다. From the grep manpage :
v, --invert-match 일치하지 않는 줄을 선택하려면 일치감을 반전시킵니다.
예를 들면 :
$adb logcat | grep --invert-match 'notshownmatchpattern'
정규식 을 사용하여이를 확장 할 수 있습니다 .
다음은 이러한 식의 예입니다.
"/^(?:emails|tags|addresses)"
이것은 주어진 것 중 하나가 발생하는지 확인하고 grep은 나열하지 않습니다.
grep
는 표준 유닉스 명령입니다. Windows의 경우 시도해 볼 수 있습니다 find /V "notshownmatchpattern"
. 추신 : 분명히 adb 셸에는 grep
. 그러나 그것은 표준 유닉스와 동일하지 않습니다 grep
!
정규식 입력 상자와 부정적 미리보기 어설 션을 사용하여 DDMS Monitor (및 Eclipse 또는 Android Studio)에서이를 수행 할 수 있습니다. 예를 들어 다음과 같이 로그에서 많은 노이즈를 제외하고 있습니다.
tag:^(?!(WifiMulticast|WifiHW|MtpService|PushClient))
( "tag :"는 정규식의 일부가 아니지만 LogCat에 정규식을 태그 필드에만 적용하도록 지시합니다. 저장된 필터에서이 트릭을 사용하는 경우 "태그"입력 상자에 정규식 만 넣으십시오. , "tag :"접두사 생략)
Android Studio의 logcat 모니터 창에서 오른쪽 상단의 드롭 다운을 열고 ( "선택한 애플리케이션 만 표시"가 선택되어있을 수 있음) 필터 구성 편집을 선택하여 저장된 필터를 설정할 수 있습니다. 새 logcat 필터를 만들고 ^(?!(WifiMulticast
... etc를 넣으십시오 . ))
로그 태그 상자에 Regex
확인란이 선택되어 있습니다.
Android 스튜디오에서 태그 이름으로 특정 메시지를 제외하거나 필터링하려면 LogCat 창 => 필터 구성 편집으로 이동하여 "로그 태그 (정규식) 별"아래에 다음을 입력하십시오.
^(?!(tag1|tag2|tag3|tag4))
공백이 없습니다. 이것은 중요합니다.
^(?!tag1)
^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$
이것은 WindowManager, dalvik, ... 내용이있는 텍스트를 제외합니다.
tag:^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$
이것은 logcat에서 WindowManager, dalvik, ... 태그를 제외합니다.
^(?!(WifiMulticast|WifiHW|MtpService|PushClient|EGL_emulation|OpenGl*|InputReader|art|dalvik|Environment|DataRouter|AlarmManager|WindowManager|PhoneStatusBar|ActivityManager|ResourceType|PackageManager|gralloc*))
셸에서 다음과 같은 명령을 사용할 수 있습니다.
adb logcat AlarmManagerService:S PowerManagerService:S *:V
여기에는 AlarmManagerService
및 PowerManagerService
태그 가있는 로그를 제외한 모든 로그가 포함됩니다 .
( :S
"silent"는 해당 태그에 대해 아무것도 인쇄되지 않음을 :V
의미하고 "verbose"는 다른 모든 태그에 대해 모든 것이 인쇄됨을 의미합니다. logcat에 대한 Android 문서 에는 사용할 수있는 다른 옵션에 대한 자세한 내용이 있습니다. 필터.)
ANDROID_LOG_TAGS
환경 변수를 사용하여 기본 필터를 설정할 수도 있습니다 (예 : bash에서).
export ANDROID_LOG_TAGS="AlarmManagerService:S PowerManagerService:S *:V"
S
'침묵'입니다. 나는 당신이 제안한 것처럼 이것을 설명하기 위해 답변을 업데이트했습니다.
보다 강력한 필터링을 위해 긍정 및 부정 예측을 모두 결합합니다.
예:
(?=(AndroidRuntime|Main|RandomTag))(?!(Audio))
첫 번째 중첩 된 괄호 안의 태그가 포함됩니다.
초의 태그는 제외됩니다.
다음은 삼성 시스템 로그 를 무시하는 데 사용했던 필터 목록입니다 . 다른 장치에서도 작동합니다.
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))
이를 수행하는 쉬운 방법은보고 싶은 태그 만 필터링하는 것입니다.
adb logcat -s "Tag1" -s "Tag2" -s "Tag3"
해당 태그 만 표시됩니다.
Eclipse Logcat보기에는 이러한 옵션이 없습니다. 그러나 로그 수준을 사용하여 로그 수준이 너무 낮은 메시지를 제외 할 수 있습니다. 예. I (nfo)로 설정하면 D (ebug) 및 (V) erbose 메시지가 표시되지 않습니다.