728x90
안드로이드 스튜디오에서 디버그 창입니다.
디버깅을 하기 위해서는 TAG 를 달아서 디버깅 하는 것이 내가 원하는 것만 볼 수 있는 최적의 방법이 아닐까 생각을 하는 데요.
이렇게도 해보고
저렇게도 해봤는 데요
https://blog.naver.com/tommybee/222926115226
통합 개발 환경 내에서 개발 하는 것이
- 뭔가 정돈 된 느낌도 있고,
- 여러개의 창을 조작 하지 않아도 되고
- 디버깅 메시지를 천천히 볼 수도
있는 것 같습니다.
그래서 안드로이드 스튜디오 상에서 logcat 메시지를 조작 할 경우에 생기는 삽질 중에 여러개의 TAG 메시지를 한꺼번에 볼 수 있는 방법에 대해서 찾아 보고 이를 적용 해 보았습니다.
아래 참고 문서를 확인 해보고, 결론만 먼저 이야기 해 본 다면,
위에서 처럼 선택하고,
위 밑줄 친 영역에다 아래와 같이 태그 디버깅을 위한 정규식 표현을 추가 해 주면 된다는 것이 첫 번째 해야 할 일입니다.
TAG 빼기 출력
로그 메시지에서 AAA, BBB 라는 태그만 빼고 출력 하고 싶다면 다음 정규식을 적용 하면 됩니다.
^(?!(AAA|BBB))
원하는 TAG 만 출력
로그 메시지에서 AAA, BBB 라는 태그만 출력 하고 싶다면 다음 정규식을 적용 하면 됩니다.
(?:(AAA|BBB))
참고 문서들
정규식에는 다음과 같은 표현을 사용 할 수가 있습니다.
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?
정규식 입력 상자와 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?
질문 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
'모바일프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 gradle 빌드 하기 (4) | 2024.08.31 |
---|---|
안드로이드 스튜디오 설치하기 (2) | 2024.08.30 |
Apk 크기 간소화 : 안드로이드 앱 크기 줄이기 (0) | 2024.08.29 |
[Android] 안드로이드 용 OpenCV 빌드하기-3 (0) | 2024.01.24 |
[Android] 안드로이드 용 OpenCV 빌드하기-2 (1) | 2024.01.23 |