태그 이름으로 logcat의 출력 필터링


151

태그 이름으로 에뮬레이터가 아닌 실제 장치의 logcat 출력을 필터링하려고하지만 스팸 인 모든 메시지를 얻습니다. 브라우저에서 "browser : "또는 "webkit : " 과 같은 메시지를 읽으려고 하지만 작동하지 않습니다 ... 여기에 내가 얻는 것이 있습니다 :

실제 출력

답변:


294

이것을 사용하십시오 :

adb logcat -s "TAGNAME"

7
감사합니다! 의 '태그 이름': 위는 ADB 로그 캣 *에 해당
뭉크

3
<tagname>을 어떻게 필터링 할 수 있습니까?
Arunabh Das

필터링하는 유일한 방법은 레벨을 기준으로하는 것입니다. 예를 들어, 일부 앱이 스팸 인 경우 디버그 로그 로그 수준을 Info 및 상위 레벨 만 표시하도록 설정하십시오. logcat * : I
Somewhere Somewhere

1
위의 -f 파일 이름과 함께 사용할 수 있습니까? 내 시나리오는 TagName으로 로그를 필터링하고 텍스트 파일로 덤프하는 것입니다.
Green goblin

9
Das- "adb logcat TAGNAME : s"는 시끄러운 태그를 표시하지 않습니다.
Don Park

56

내가 한 것처럼 누군가가 우연히 발견되는 경우 다음과 같이 사이에 쉼표를 추가하여 여러 태그를 필터링 할 수 있습니다.

adb logcat -s "browser","webkit"

이 코드를 어디에 두어야하는지 설명하십시오. 나는 새로운 꿀벌입니다. 설명하십시오
Zar E Ahmer

1
@Nepster 터미널에 입력하십시오.
async

Windows에서 cygwin을 사용하는 경우 grep을 사용할 수 있습니다 ... 그렇습니다.
sgupta

12

다른 옵션은 특정 태그에 대한 로그 수준을 설정하는 것입니다.

adb logcat SensorService : S PowerManagerService : S NfcService : S 전원 : I 센서 : E

일부 태그의 로그 수준을 설정하려는 경우 태그별로 태그별로 로그 수준을 설정할 수 있습니다.


9

ADB 쉘에 의존하지 말고 (adb logcat) 일반적인 리눅스 출력을 처리 한 다음 pip하십시오.

$ adb shell logcat | grep YouTag
# just like: 
$ ps -ef | grep your_proc 

5
불필요한 트래픽이 많이 전송되고 필터가 작동하지 않기 때문에 이는 잘못된 선택입니다. 관련없는 프로세스가 메시지를 기록하면 일부 문자열이 표시됩니다.
John Smith

and the filter obviously won't work시도 했습니까? 결과에 따라 내 대답을 붙여 넣었습니다.
Siwei Shen 申思维

1
문제는 grep을 사용할 수없는 창문에 관한 것입니다
sroskelley

1
Windows에서 cygwin을 사용하는 경우 grep을 사용할 수 있습니다 ... 그렇습니다.
sgupta

6

태그를 만드는 방법은 다음과 같습니다.

private static final String TAG = SomeActivity.class.getSimpleName();
 Log.d(TAG, "some description");

getCannonicalName을 사용할 수 있습니다

다음은 TAG 필터입니다.

  • 모든 (*)보기-VERBOSE
  • 모든 (*) 활동-VERBOSE
  • Xyz (*)로 시작하는 모든 태그-오류
  • System.out-SILENT (자체 코드에 로그인을 사용하고 있기 때문에)

터미널에 입력하는 내용은 다음과 같습니다.

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.