2011-10-25 2 views
72

LogCat을 "스팸 (spams)"하는 Android 응용 프로그램이 있는데 출력을 더 읽기 쉽게하기 위해 logcat 항목을 제거하고 싶습니다.Eclipse에서 태그 이름을 필터링하는 방법 LogCat 뷰어

특정 태그 이름에 대한 LogCat 항목을 제거하는 필터를 사용할 수 있습니까? 또는 트릭을 수행하는 검색 패턴?

+0

@pankaj 정확히 내가 원하는 것은 아닙니다. 특정 항목을 분리하는 대신 제거하는 방법을 원합니다. – Jleuleu

답변

178

예. 은 "로그 태그로"필드가 MYTAG 당신이보고 싶어하지 않는 태그가

^(?!.*(MYTAG)).*$ 

입니다 필터를 만듭니다. 나는 정규 표현식 전문가 ("regexpert"?;-))가 아니기 때문에 부정을 할 수있는 더 간단한 방법이있을 수 있지만 방금 시도해 보았다.

이처럼,이 필터 문자열을 입력하여 바로 로그인 고양이의 메시지 영역 위의 필드에 필터를 함께 놀러 수 있습니다

tag:^(?!.*(DeskClock|dalvik|wpa)).*$ 

의 모든 메시지를 제외 태그 "DeskClock"이 표시되는 , "dalvik"및 "wpa"

+0

이 정규식을 Eclipse LogCat View의 목록 위에있는 검색 바에 추가 할 수도 있습니다. 감사! –

+0

감사합니다. 필자는 항상 일치하지 않는 출력 만 표시하는 regexp을 빌드하는 데 문제가있었습니다. 매우 도움이됩니다. DDMS는 실제로 유용합니다. – chriv

+0

고맙습니다. 이것은 매우 유용합니다, 여기에 정규식을 사용할 수 있는지 몰랐습니다. – razielsarafan

8

어떤 방식으로 로그인했는지에 따라 다릅니다.

GUI logcat 인터페이스를 사용하는 경우보고 싶은 태그에 대한 필터를 만드는 것이 가장 좋습니다. 이것들은 별도의 범주로 떨어집니다. UI가 약간 변경되었지만이 old answer from me을 사용할 수 있습니다. 사용 방법을 분명히해야합니다 ("저장된 필터 탭 표시"버튼을 눌러야합니다. 그렇지 않으면 "필터 추가"버튼이 표시되지 않습니다. 로그의 오른쪽 상단에서 해당 필터를 찾을 수 있습니다). 나는 전체 logstream에서 특정 태그를 필터링 할 수있는 옵션을 알고 있지 않습니다.

명령 줄을 사용하는 경우 특정 태그를 음소거 할 수 있습니다. 예 :

adb logcat AndroidRuntime:S *:V 

이 아무것도 인쇄하지 않습니다 의미 "침묵"로그 레벨로 제한됩니다 태그 AndroidRuntime를 제외하고, 자세한 로그 레벨까지의 모든 (*:V)를 보여줍니다.

당신이

adb logcat *:S MyAppTag:V OtherTag:V 

같은 방법을 사용할 수있는 하나의 태그를 표시하려면 모든 MyAppTagOtherTag를 제외하고 침묵됩니다. 자세한 내용은 Filtering Log Output을 참조하십시오. 당신이 볼 수 있듯이

Log.d(TAG, "MyTag" + message); 

, 나는 키 "MyTag"로 필터링 할 때, 그것은 단지 내 태그에서 로그인을 보여줍니다

+0

고마워,'adb logcat : S * : V'가 내가 찾고 있던 것이다. Eclipse GUI logcat 인터페이스에서 같은 동작을 원하지만 현재는 명령 줄을 사용합니다. – Jleuleu

3

나는 트릭을 가지고있다.

1

이것은 늦은 응답이지만 유용 할 수 있습니다. Eclipse 환경에서 LogCat보기의 표 위에는 검색 창이 있습니다. 주의를 기울이면 비어 있습니다.

메시지를 검색하십시오. Java 정규 표현식을 허용합니다.접두어는 pid :, app :, 태그 : 또는 텍스트 : 범위를 제한합니다. MyTag 또는 정규식 태그 :

그것은 당신이 거기 태그를 작성하여 태그를 필터링 할 수 있음을 의미합니다. 내를 *

9

이 여기 질문에 직접 관련 보이지만하지 않을 수 있습니다 정규식이다 이 태그를 태그 필터 as described by Rob에 넣으면 대부분의 시스템 생성 로그가 필터링됩니다.

^(?!(WifiMulticast|WifiHW|MtpService|PushClient|InputMethodManager|Provider|SurfaceTextureClient|ImageLoader|dalvikvm|OpenGLRenderer|skia|AbsListView|MediaPlayer|AudioManager|VelocityTracker|Drv|Jpeg|CdpDrv|IspDrv|TpipeDrv|iio|ImgScaler|IMG_MMU|ResMgrDrv|JpgDecComp|JpgDecPipe|mHalJpgDec|PipeMgrDrv|mHalJpgParser|jdwp|libEGL|Zygote|Trace|InputEventReceiver|SpannableStringBuilder|IInputConnectionWrapper|MotionRecognitionManager|Choreographer|v_galz|SensorManager|Sensors|GC|LockPatternUtils|SignalStrength|STATUSBAR-BatteryController|BatteryService|STATUSBAR-PhoneStatusBar|WifiP2pStateTracker|Watchdog|AlarmManager|BatteryStatsImpl|STATUSBAR-Clock)) 

다른 기기에서 테스트 할 때마다 계속 태그 목록을 업데이트하고 있습니다. 이 목록은 완전한 것이 아니며이 대답에 자유롭게 기여할 수 있습니다. 나는 이것이 많은 사람들에게 한 시간을 절약 할 것이라고 확신한다.

필터링 할 필요가있는 다른 로그가 있으면 '| |'를 사용하여이 정규 표현식에 추가하십시오. ' 캐릭터.

5

Android Studio (Android SDK의 향후 버전과 함께 제공 될 IDE)에서 제대로 작동하려면 선택한 솔루션을 얻지 못했습니다. 그러나 다음과 같은 정규식 내 문제 해결 :

^(?!dalvikvm) 
+0

나를 위해 일하는 표현식에 원하는만큼 많은 태그를 넣을 수 있습니다. , 고맙습니다! – huangcd

0

앱에서 발생하지 않는 로그 메시지를 필터링하는 또 다른 방법은 선택하는 것입니다 :

로그 레벨 : 자세한 정보

는 "만 표시 선택된 응용 프로그램 "(필터 선택 드롭 다운에서)

그런 다음 logcat 창에있는 드롭 다운 디버그 목록에서 응용 프로그램을 선택하십시오.

로그 메시지와 앱 출력 만 표시됩니다.

+0

어쨌든 .... 당신은 정규식이 원치 않는 텍스처 정교를 걸러 낼 필요가 있습니다 ... 그리고 다른 것들은 당신의 앱 이름으로 채워야합니다. – Davidea

관련 문제