본문 바로가기
Kotlin/Kotlin 팁

Logcat을 이용한 로그 작성 및 보기

by MonoSoft 2022. 9. 1.
728x90
반응형

Logcat을 이용한 로그 작성 및 보기

 

 

Android 스튜디오의 Logcat 창에는 시스템 메시지(예: 가비지 컬렉션 발생)와 Log 클래스를 

사용하여 앱에 추가한 메시지가 표시됩니다. 

 

메시지는 실시간으로 표시되며, 이전 메시지를 볼 수 있도록 기록이 유지됩니다.

관심 있는 정보만 표시하기 위해 필터를 만들고, 메시지에 표시되는 정보의 양을 수정하고, 

우선순위 레벨을 설정하고, 앱 코드를 통해 생성된 메시지만 표시하고, 

로그를 검색할 수 있습니다. 

기본적으로 logcat은 가장 최근 실행한 앱과 관련된 로그 출력만 보여줍니다.

앱에서 예외가 발생하면 logcat은 메시지를 표시한 

 

다음 코드 줄에 대한 링크를 포함한 연결된 스택 추적을 표시합니다.

Android 스튜디오 2.2부터는 Run 창에 현재 실행 중인 앱의 로그 메시지도 표시됩니다. 

참고로 logcat 출력 화면은 구성할 수 있지만, Run 창은 구성할 수 없습니다.

 

앱 로그 보기

앱의 로그 메시지를 표시하려면 다음을 따르세요.

기기에서 앱을 빌드하고 실행합니다.

 

View > Tool Windows > Logcat을 클릭합니다(또는 도구 창 모음에서

Logcat 을 클릭).

 

 

Logcat 창은 그림 1과 같이 창의 상단에 있는 드롭다운 목록에서 선택한 대로 선택된 앱의 로그 메시지를 표시합니다.

 

그림 1. Logcat 창


기본적으로 logcat은 기기에서 실행 중인 앱의 로그 메시지만 표시합니다.

이 기본값을 변경하려면 logcat 메시지 필터링을 참조하세요.

 

Logcat 툴바는 다음과 같은 버튼을 제공합니다.

 

Clear logcat  : 클릭하여 표시된 로그를 삭제합니다.

Scroll to the end : 클릭하여 로그의 맨 아래로 이동하고 최신 로그 메시지를 확인합니다. 

그런 다음 로그에서 한 줄을 클릭하면 뷰는 그 지점에서 스크롤하는 것을 일시 중단합니다.

Up the stack trace 및 Down the stack trace : 클릭하여 로그의 스택 추적에서 위아래로 이동하면서

출력된 예외 뒤에 표시되는 파일 이름을 선택하고 편집기에 대응하는 줄 번호를 확인합니다.

이 동작은 로그에서 파일 이름을 클릭하는 것과 같습니다.

Use soft wraps : 클릭하여 줄바꿈을 사용하고 가로 방향 스크롤을 금지합니다

(가로 방향 스크롤이 필요한 줄바꿈을 할 수 없는 모든 문자열 포함).

Print : 클릭하여 logcat 메시지를 인쇄합니다. 

표시된 대화상자에서 인쇄 설정을 선택한 후에 PDF에 저장하는 것도 선택할 수 있습니다.

Restart : 클릭하여 로그를 삭제하고 logcat을 다시 시작합니다. 

Clear logcat 버튼과 달리 이 기능은 이전의 로그 메시지를 복구하여 표시합니다. 

따라서, 이 기능은 Logcat이 응답하지 않고 로그 메시지를 잃고 싶지 않을 때 가장 유용합니다.

Logcat header : 클릭하여 Configure Logcat Header 대화상자를 열고 

각 Logcat 메시지의 출력 형식(예: 날짜와 시간의 표시 여부)을 사용자설정합니다.

Screen capture : 클릭하여 스크린샷을 캡처합니다.

Screen record : 클릭하여 기기의 동영상을 녹화합니다(최대 3분).

 

로그 메시지 작성

Log 클래스를 사용하여 logcat에 표시되는 로그 메시지를 만들 수 있습니다.

일반적으로 다음과 같은 로그 메서드를 사용해야 하며, 우선순위가 가장 높은 것부터

(또는 상세 수준이 가장 낮은 것부터) 순서대로 나열되어 있습니다.

Log.e(String, String) (오류)

Log.w(String, String) (경고)

Log.i(String, String) (정보)

Log.d(String, String) (디버그)

Log.v(String, String) (상세)

전체 옵션 목록은 Log 클래스 설명을 참조하세요.

 

개발 단계를 제외하고 상세 로그를 앱으로 컴파일하면 안 됩니다.

디버그 로그는 런타임에 컴파일되지만 삭제되는 반면, 오류, 경고 및 정보 로그는 계속 유지됩니다.

 

각 로그 메서드에서 첫 번째 매개변수는 고유한 태그여야 하며 두 번째 매개변수는 메시지입니다.

시스템 로그 메시지의 태그는 메시지가 발생한 시스템 구성요소를 가리키는 짧은 문자열입니다

(예: ActivityManager). 사용자가 정의한 태그는 현재 클래스의 이름과 같이 사용자가 유용하다고

생각하는 정보를 나타내는 문자열입니다.

 

첫 번째 매개변수에서 사용할 클래스에 TAG 상수 선언을 규칙으로 하는 것이 좋습니다.

예를 들어, 다음과 같이 정보 로그 메시지를 만들 수 있습니다.

 

모든 Android 로그 메시지에는 태그 및 태그와 연관된 우선순위가 있습니다. 

시스템 로그 메시지의 태그는 메시지가 발생한 시스템 구성요소(예: ActivityManager)를 

가리키는 짧은 문자열입니다. 

사용자 정의 태그는 현재 클래스의 이름과 같이 사용자가 유용하다고 생각하는 

정보를 나타내는 문자열입니다(권장 태그). 

예를 들어, 아래와 같이 Log 메서드 호출에서 이러한 태그를 정의합니다.

 

PID는 프로세스 식별자(process identifier), TID는 스레드 식별자(thread identifier)를 나타내며, 

스레드가 하나만 있을 때는 두 ID가 같을 수 있습니다.

 

로그 레벨 설정

로그 레벨을 설정하여 logcat에 표시할 메시지 수를 제어할 수 있습니다. 

모든 메시지를 표시하거나 가장 심각한 조건을 나타내는 메시지만 표시할 수 있습니다.

로그 레벨 설정과 관계없이 logcat은 계속 모든 메시지를 수집합니다. 

이 설정은 단순히 logcat이 무엇을 표시할지 결정합니다.

 

로그 레벨 메뉴에서 다음 값 중 하나를 선택합니다.

 

Verbose: 모든 로그 메시지를 표시합니다(기본 설정).

Debug: 개발 단계에서만 유용한 디버그 로그 메시지뿐 아니라 

그보다 낮은 레벨의 메시지도 이 목록에 표시합니다.

Info: 일반적인 사용을 위해 예상할 수 있는 로그 메시지뿐 아니라 

그보다 낮은 레벨의 메시지도 이 목록에 표시합니다.

Warn: 아직 오류는 아니지만 발생할 수 있는 문제뿐 아니라 

그보다 낮은 레벨의 메시지도 이 목록에 표시합니다.

Error: 오류를 일으킨 문제뿐 아니라 

그보다 낮은 레벨의 메시지도 이 목록에 표시합니다.

Assert: 개발자가 발생해서는 안 된다고 생각하는 문제를 표시합니다.

 

logcat 메시지 검색

현재 logcat에 표시된 메시지를 검색하려면 다음을 따르세요.

정규 표현식 검색 패턴을 사용하려면 Regex를 선택합니다(선택사항).

 

검색 입력란 에 문자 시퀀스를 입력합니다.

검색 결과에 따라 logcat 출력 화면이 변경됩니다.

 

Enter 키를 눌러 이 세션 동안 메뉴에 검색 문자열을 저장합니다.

검색을 반복하려면 검색 메뉴에서 해당 검색을 선택합니다. 

필요에 따라 Regex를 선택하거나 선택 해제합니다

(이 설정이 저장되지는 않음).

 

logcat 메시지 필터링

로그 출력을 관리 가능한 수준으로 줄이는 

한 가지 방법은 필터를 사용해 로그 출력을 제한하는 것입니다.

 

참고: 필터는 logcat에 현재 표시되고 있는 

메시지뿐만 아니라 전체 logcat 기록에 적용됩니다. 

검사하려는 필터 출력을 볼 수 있도록 다른 표시 옵션이 

알맞게 설정되어 있는지 확인하세요.

 

필터를 정의하고 적용하는 방법은 다음과 같습니다.

필터 메뉴에서 필터 옵션을 

 

Show only selected application: 앱 코드에서 생성된 메시지만 표시합니다(기본 설정). 

Logcat이 활성 상태인 앱의 PID를 사용하여 로그 메시지를 필터링합니다.

 

No Filters: 필터를 적용하지 않습니다. Logcat이 개발자가 

선택한 프로세스와 관계없이 기기에서 수신되는 모든 로그 메시지를 표시합니다.

 

Edit Filter Configuration: 사용자설정 필터를 만들거나 수정합니다. 

예를 들어, 두 앱의 로그 메시지를 동시에 볼 수 있는 필터를 만들 수 있습니다.\

필터를 정의한 후 메뉴에서 이러한 필터를 선택할 수도 있습니다. 

필터를 메뉴에서 삭제하려면 필터를 삭제하세요.

 

Edit Filter Configuration을 선택한 경우 다음 순서를 따라 필터를 만들거나 수정합니다.

Create New Logcat Filter 대화상자에서 필터 매개변수를 다음과 같이 지정합니다.

 

Filter Name: 정의하려는 필터의 이름을 입력하거나 

왼쪽 창에서 기존 필터를 선택하여 수정합니다. 이름에는 소문자, 밑줄, 숫자만 

사용할 수 있습니다.

 

Log Tag: 태그를 지정합니다(선택사항). 자세한 정보는 logcat 메시지 형식을 참조하세요.

Log Message: 로그 메시지 텍스트를 지정합니다(선택사항). 

Package Name: 패키지 이름을 지정합니다(선택사항). 

PID: 프로세스 ID를 지정합니다(선택사항). 

Log Level: 로그 레벨을 선택합니다(선택사항). 

Regex: 특정 매개변수에 정규 표현식 구문을 사용하려면 이 옵션을 선택합니다.

 

왼쪽 창에 필터 정의를 추가하려면 +를 클릭합니다.

필터를 삭제하려면 왼쪽 창에서 삭제할 필터를 선택한 후 -를 클릭하세요.

위 작업을 완료하면 OK를 클릭합니다.

원하는 로그 메시지가 표시되지 않으면 No filters를 선택하고 

해당 로그 메시지를 검색해 보세요.



728x90
반응형

댓글