Android

새로운 버전의 로그캣 등장, 5가지 꿀기능을 알아보자!

MJ핫산 2023. 2. 1. 23:53

새로운 버전의 로그캣?! 😺

회사 안드로이드 스튜디오를 Electric Eel로 업데이트 했다. 꽤 많은 것들이 바뀌어 있었는데, 그 중에서도 Logcat이 특히 많은 변화가 있었던 것 같다.

디자인부터 굉장히 화려해진 느낌.. ◟(ᵔ ̮ ᵔ)͜💐

 

찾아보니 새로운 버전의 로그캣이 등장했다고 하는데... 새로운 버전의 로그캣은 이미 Dolphin 버전부터 적용되어 있었고, Dolphin에서는 Experimental Feature였어서 따로 설정을 통해 새 버전을 사용할 수 있었다고 한다.

그리고 내 Android Studio 버전인 Electric Eel(2022.01)부터는 새로운 로그캣이 기본 값이

Android Studio Dolphin 에서 새로운 버전의 로그캣을 사용하려면

  1. Settings > Experimental을 연다.
  2. Enable new logcat window를 활성화시킨다.
  3. 안드로이드 스튜디오를 재시작한다.

새로운 로그캣의 기능들 Top 5 🍯

새로운 버전의 로그캣은 디자인이 변경된 것 뿐만 아니라 로그 읽는 것을 단순화하고 또 필요한 정보를 더 빨리 찾을 수 있도록 기존 기능들을 향상시키고 새로운 기능을 포함시켰다.

그 중 활용도가 좋고 흥미로운 기능 5가지를 살펴보았다.

1️⃣ Additional logs when app starts and stops

새 로그캣은 앱이 시작되거나 중지될 때 (닫히거나 크래시가 발생했을 때) 프로세스 아이디, 패키지 이름 등의 추가적인 메시지를 표시해준다.

// application started
--- PROCESS STARTED (32485) for package com.alexzh.testapp ---

// application stopped
--- PROCESS ENDED (32354) for package com.alexzh.testapp ---

2️⃣ Queries

기존 로그캣에서는 화면에 “검색”과 “필터”가 각각 별도의 메뉴로 위치해 있었다.

하지만 이러한 구성의 문제점은 필터 매개변수가 항상 개발자에게 잘 보이지 않는다는 것이었다.

그래서 새 버전의 로그캣에서는 검색과 필터를 하나의 입력 필드에 결합하여 화면에 표시해준다.

로그 항목을 필터링하는데 사용할 수 있는 Key들을 살펴보자면

  • package
    • package:mine
    • package:<package-ID>
  • log level
    • level:[VERBOSE | INFO | ASSERT | DEBUG | WARN | ERROR]
  • tag
    • tag:<tag>

❗️log level로 필터링 할 때 로그캣은 설정한 값과 레벨이 같거나 더 높은 항목들을 보여주게 된다. 즉 level: DEBUG로 조회하면 DEBUG, WARN, ERROR 레벨의 로그가 보이게 되고, level: INFO로 조회하면 INFO, ASSERT, DEBUG, WARN, ERROR 레벨의 로그가 모두 보이게 된다.

다음은 Query를 작성하는 예시다.

  • WARN과 ERROR 레벨의 로그를 보고 싶다면
    package: mine level: WRAN

  • HomeScreen 태그를 사용하고, message가 “test log”로 시작하는 로그를 보고싶다면
  • package:mine tag:HomeScreen test log*

 

❗️로그 항목에서 특정 값을 제외하려면 키 앞에 “-”를 붙이면 된다.

  • “HomeScreen”으로 시작하는 태그들의 로그를 보고 싶은데 “HomeScreenSettings” 태그가 붙은 로그는 제외하고 싶다면
  • package:mine tag:HomeScreen -tag:HomeScreenSettings

❗️로그에 대해 정규식을 사용하고 싶다면 Key 뒤에 “~”를 붙이면 된다.

  • 태그 뒤에 “Nav”가 붙는 로그들을 보고 싶다면
  • package:mine tag~:.*Nav*

❗️ Key로 age를 사용하면 시간 범위별로 로그를 필터링할 수 있다.

  • age:30s 최근 30초간의 로그들
  • age:2m 최근 2분간의 로그들
  • age:1h 최근 1시간의 로그들
  • age:2d 최근 이틀간의 로그들

❗️Key로 is를 사용하면 crash 및 stacktrace도 추적할 수 있다.

  • is:crash 모든 crash
  • is:stacktrace 모든 stacktrace

3️⃣ Query History

최신 버전의 로그캣은 Query History 기능이 더 개선되었다. 이제 쿼리 히스토리에서 쿼리를 삭제하거나 즐켜찾기 할 수도 있고, 또 쿼리의 이름을 설정할 수도 있다.

쿼리 즐겨찾기 하는 방법

여러 쿼리를 사용하게 되면, 쿼리 히스토리에 쿼리가 너무 많이 표시된다. 정리를 위해 사용성이 높은 쿼리들은 입력창 끝에 있는 별모양 아이콘을 눌러서 즐겨찾기에 등록할 수 있다.

쿼리 히스토리 삭제하기

쿼리 기록을 삭제하는 방법은 두가지가 있는데 X버튼을 누르거나 “shift + del” 버튼을 누르는 것이다. (Android Studio Dolphin은 단축키만 가능)

쿼리 이름 설정하기

이 기능은 Android Studio Electric Eel부터 가능하긴한데, 히스토리에 쿼리가 많을 경우 필요한 쿼리를 찾기 위해 쌓여있는 쿼리들을 분석해야하는 경우가 생긴다.

Remove query from history

쿼리 기록을 삭제하는 방법은 X버튼을 누르거나 “shift + del”을 눌러서 제거할 수 있다. (쿼리 삭제 기능은 Electric Eel 부터 사용 가능, 돌핀은 단축키만 가능..)

이런 상황을 방지하기 위해 쿼리에 name:쿼리명을 추가하면 쿼리에 이름을 할당할 수 있다. 이후 쿼리 히스토리에는 원래의 쿼리 대신 쿼리명이 표시되고, 쿼리를 선택하면 입력창에는 원래의 쿼리가 표시된다.

4️⃣ Formatting

새로운 로그캣은 두가지 포맷팅 옵션을 제공한다.

  • Standard View
  • Compact View

포맷팅 설정 방법은 로그캣 창 왼쪽에 있는 “Configure Logcat Formating Options” 아이콘을 클릭하면 포맷팅 옵션을 선택할 수 있다.

Standard View는 timestamp(날짜, 시간), process id (스레드 포함), tag, package name, log level, message 등 사용가능한 모든 정보가 표시된다.

Compact View는 timestamp(날짜, 시간), log level, message 정도만 표시된다.

그리고 미리 정의된 포맷팅을 변경하려면 “Logcat Formatting Options” 아이콘을 누른 후 “Modify View”를 선택하면 된다. 내가 원하는대로 항목들을 선택해서 적용할 수 있다.

예를 들어 timestamp, tag, message만 보이게 해뒀다면 이렇게 내가 원하는대로 볼 수 있다.

5️⃣ Multiple logcat windows

이제 “New Tab” 버튼으로 여러개의 로그캣 창을 사용할 수 있다! 각 패널에 대해 서로 다른 쿼리를 사용하거나 다른 장치의 로그를 확인하려는 경우 굉장히

유용하게 사용될 것 같다. 로그를 우클릭하고 “Split <원하는 위치>”를 선택하면 로그캣 창을 두 개로 분할할 수도 있다.

🥳 마무리

이렇게 안드로이드 스튜디오의 새로운 로그캣에 대해 알아보았다. 새 UI뿐만 아니라 많은 기능들이 생기고, 발전한만큼 유용하게 사용한다면 더 나은 개발환경이 되지 않을까~ 하하 화이팅. ♪♪(oᐛ)o~♪♪