안드로이드 스튜디오에서 TAG로 디버깅

2025. 1. 12. 10:03모바일프로그래밍/안드로이드

728x90

안드로이드 스튜디오에서 디버그 창입니다.


디버깅을 하기 위해서는 TAG 를 달아서 디버깅 하는 것이 내가 원하는 것만 볼 수 있는 최적의 방법이 아닐까 생각을 하는 데요.

이렇게도 해보고

 

[android studio]여러개 단어(tag) logcat 디버깅

안드로이드 스튜디오 logcat 뷰에서 여러줄의 tag를 디버깅 할 수 있는 방법은 다음과 같습니다. 이상.

blog.naver.com

저렇게도 해봤는 데요

https://blog.naver.com/tommybee/222926115226

 

LogCat을 이용한 안드로이드 디버깅

이클립스나 안드로이드 스튜디오로 진행되는 안드로이드 개발에서 실제 로그 메시지를 어떻게 뿌리고 있는 ...

blog.naver.com


통합 개발 환경 내에서 개발 하는 것이 

  • 뭔가 정돈 된 느낌도 있고, 
  • 여러개의 창을 조작 하지 않아도 되고
  • 디버깅 메시지를 천천히 볼 수도

있는 것 같습니다.

그래서 안드로이드 스튜디오 상에서 logcat 메시지를 조작 할 경우에 생기는 삽질 중에 여러개의 TAG 메시지를 한꺼번에 볼 수 있는 방법에 대해서 찾아 보고 이를 적용 해 보았습니다.

아래 참고 문서를 확인 해보고, 결론만 먼저 이야기 해 본 다면,


위에서 처럼 선택하고,


위 밑줄 친 영역에다 아래와 같이 태그 디버깅을 위한 정규식 표현을 추가 해 주면 된다는 것이 첫 번째 해야 할 일입니다.



TAG 빼기 출력

로그 메시지에서 AAA, BBB 라는 태그만 빼고 출력 하고 싶다면 다음 정규식을 적용 하면 됩니다.

^(?!(AAA|BBB))

원하는 TAG 만 출력

로그 메시지에서 AAA, BBB 라는 태그만 출력 하고 싶다면 다음 정규식을 적용 하면 됩니다.

(?:(AAA|BBB))

 

참고 문서들

정규식에는 다음과 같은 표현을 사용 할 수가 있습니다.

https://www.regular-expressions.info/lookaround.html



1. Positive and Negative Lookahead

뒤에 자신과 다른 것이 오지 않는 것으로 찾기 위해서는 Negative lookahead를 필히 사용해야 합니다. 문자 클래스를 설명할 때 이 튜토리얼에서는 부정 문자 클래스를 사용하여 u다음에 q가 나오지 않도록 할 수 없는 이유를 설명했습니다.

Negative lookahead는 이런 문제에 대한 다음의 해결책을 제공합니다: . 

q(?!u)


Negative lookahead 구문은 여는 괄호 뒤에 물음표와 느낌표 오도록 하는 한 쌍의 괄호입니다. 
lookahead 내부에는 우리는 단순한 정규식 u가 존재 하면 됩니다.
Positive lookahead은 Negative lookahead와 동작 방식은 같습니다. 

q(?=u)는 u를 일치의 일부로 만들지 않고 u 다음에 q를 찾습니다. 

Positive lookahead 구문은 여는 괄호 뒤에 물음표와 등호가 오는 한 쌍의 괄호입니다.
lookbehind 내에서 모든 정규식을 사용할 수 있습니다(밑에 설명되어 있는 lookbehind는 제외). 

모든 유효한 정규식을 lookhead 내에서 사용할 수 있습니다. 

캡처링 그룹이 포함된 경우 해당 그룹은 정상적으로 캡처되고 해당 그룹에 대한 역참조는 예측 외부에서도 정상적으로 작동합니다. (유일한 예외는 Tcl이며, 이는 lookahead 내부의 모든 그룹을 비 캡처로 취급합니다.)

lookahead 자체는 캡처 그룹이 아닙니다. 역참조 번호 매기기에 포함되지 않습니다. 
 lookahead 내부에 정규식의 일치를 저장하려면 (?=(regex))와 같이 lookahead 내부의 정규식 주위에 캡처 괄호를 넣어야 합니다.

캡처 그룹이 일치 항목을 저장할 때 미리보기가 이미 정규식 일치를 버리기 때문에 다른 방법은 작동하지 않습니다.

​2. 스택오버플로우-How to exclude Log Tag in logcat Android Studio?

 

How to exclude certain messages by TAG name using Android adb logcat?

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 f...

stackoverflow.com

정규식 입력 상자와 negative look-ahead assertion을 사용하여 DDMS 모니터(및 Eclipse 또는 Android Studio) 내에서 이 작업을 수행할 수 있습니다. 예를 들어 다음 예처럼 해당 로그에서 많은 노이즈를 제외하도록 하고 있습니다.

tag:^(?!(WifiMulticast|WifiHW|MtpService|PushClient))

("tag:"는 정규식의 일부가 아니지만 LogCat에게 태그 필드에만 정규식을 적용하도록 지시합니다. 저장된 필터에서 이 트릭을 사용하는 경우 "tag" 입력 상자에 정규식만 입력합니다. , "tag:" 접두사 생략)

Android Studio의 logcat 모니터 pane에서 오른쪽 상단의 드롭다운을 열고("Show only selected application"가 선택되어 있을 수 있음) Edit Filter Configuration을 선택하여 저장된 필터를 설정할 수 있습니다. 

새 logcat 필터를 만들고 Regex 확인란이 선택된 상태에서 Log Tag 상자에 ^(?!(WifiMulticast ...etc. ))를 입력합니다.


3. 스택오버플로우-How to exclude certain messages by TAG name using Android adb logcat?

 

How to exclude Log Tag in logcat Android Studio?

I'm not sure if this kind of question been asked before (I did Google it but not found the proper way to solve my question). what I hope is I can disable (exclude) Log Tag from libraries used in my

stackoverflow.com


질문 20분 만에 자답을 해서 죄송합니다. 내 친구가 질문에 대한 해결 책을 링크로 보내왔습니다
Android adb logcat을 사용하여 TAG 이름으로 특정 메시지를 제외하는 방법이 있을까요?
 
안드로이드 스튜디오 사용자는
Logcat console > Edit Filter Configuration > Log Tag(regex)  메뉴로 이동해서 다음과 같이 입력하면 됩니다.

^(?!(EXCLUDE_TAG1|EXCLUDE_TAG2))

EXCLUDE_TAG1 및 EXCLUDE_TAG2는 logcat에서 제외되는 Log Tag 라는 것입니다.

질문에 대한 다른  해답은

다음 '...'을 제외한 모든 태그를 제외하는 것입니다. 

INCLUDE_TAG를 제외한 모든 태그가 표시되지 않도록 차단하려면

 

태그 1개에 대해서는

(?:INCLUDE_TAG)

여러 태그에 대해서는

(?:(INCLUDE_TAG1|INCLUDE_TAGx))


이상.

 

 

728x90