Skip to content

Most visited

Recently visited

navigation

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

Android Monitor는 디버그 메시지를 표시하는 logcat Monitor를 포함합니다. logcat Monitor는 가비지 수집이 발생하는 시점과 같은 시스템 메시지뿐 아니라, Log 클래스를 사용하여 앱에 추가할 수 있는 메시지도 표시합니다. 메시지를 실시간으로 표시하기도 하지만, 이전 메시지를 볼 수 있도록 기록을 유지하기도 합니다.

관심 있는 정보만 표시하기 위해 필터를 생성하고, 메시지에 표시할 정보의 양을 수정하고, 우선순위 레벨을 설정하고, 앱 코드를 통해 생성된 메시지만 표시하고, 로그를 검색할 수 있습니다. 기본적으로, logcat Monitor는 가장 최근에 실행된 앱과 관련된 로그 출력만 표시합니다.

앱에서 예외가 발생하면 logcat Monitor가 메시지를 표시한 다음 코드에 대한 링크를 포함한 관련 스택 추적을 표시합니다. 이 기능 덕분에 오류를 수정하고 앱 작업을 개선할 수 있습니다.

Android Studio 2.2 현재, Run 창에는 현재 실행 중인 앱에 대한 로그 메시지도 표시됩니다. 참고로, logcat Monitor 디스플레이는 구성할 수 있지만 Run 창은 구성할 수 없습니다.

logcat 메시지 형식

모든 Android 로그 메시지에는 연관된 태그와 우선순위가 있습니다. 시스템 로그 메시지의 태그는 메시지가 시작되는 시스템 구성 요소를 나타내는 짧은 문자열입니다(예: ActivityManager). 사용자 정의 태그는 현재 클래스의 이름처럼 유용하다고 생각하는 문자열일 수 있습니다(권장되는 태그). 예를 들어, 아래와 같이 Log 메서드 호출에서 이러한 태그를 정의합니다.

Log.d(tag, message);

우선순위는 다음 값 중 하나입니다.

로그 메시지 형식은 다음과 같습니다.

date time PID-TID/package priority/tag: message

예를 들어, 다음 로그 메시지의 우선순위는 V이고 태그는 AuthZen입니다.

12-10 13:02:50.071 1901-4229/com.google.android.gms V/AuthZen: Handling delegate intent.

PID는 프로세서 식별자(process identifier), TID는 스레드 식별자(thread identifier)를 나타내며, 스레드가 하나만 있을 때는 두 ID가 같을 수 있습니다.

logcat Monitor에 실행 중인 앱 표시

특정 앱에 대한 로그 메시지를 표시하려면:

  1. 사전 요구사항과 종속성을 충족시킵니다.
  2. 앱 프로젝트를 엽니다.
  3. 하드웨어 기기나 에뮬레이터에서 앱을 실행합니다.
  4. Android Monitor를 표시합니다.
  5. logcat 탭을 클릭합니다.
  6. 기본적으로, logcat Monitor는 기기나 에뮬레이터에서 실행 중인 앱에 대한 로그 메시지만 표시합니다.

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

  7. 다른 기기, 에뮬레이터 또는 프로세스를 선택할 수 있는 옵션이 있습니다.

로그 레벨 설정

로그 레벨을 설정하여 logcat Monitor에 나타낼 메시지 개수를 관리할 수 있습니다. 모든 메시지를 표시하거나 가장 심각한 조건을 나타내는 메시지만 표시할 수 있습니다.

logcat Monitor는 로그 레벨 설정과는 무관하게 모든 메시지를 계속 수집합니다. 이 설정으로는 logcat Monitor가 표시하는 내용만 결정할 수 있을 뿐입니다.

로그 레벨 설정 방법은 다음과 같습니다.

logcat 메시지 검색

logcat Monitor에 현재 표시되는 메시지의 검색 방법은 다음과 같습니다.

  1. 정규 표현식 검색 패턴을 사용하고 싶으면 Regex를 선택합니다(선택 사항).
  2. 검색 필드에 문자 시퀀스를 입력합니다 Search 아이콘.
  3. 그에 따라 logcat Monitor 표시가 적절히 바뀝니다.

  4. 이 세션 동안 메뉴에 검색 문자열을 저장하려면 Enter 키를 누릅니다.
  5. 검색을 반복하려면 검색 메뉴에서 해당 검색을 선택합니다. 필요에 따라 Regex를 선택하거나 선택 취소합니다(이 설정을 기억하지는 않음).

logcat 메시지 필터링

로그 출력을 관리 가능한 수준으로 줄이는 한 가지 방법은 필터를 사용해 로그 출력을 제한하는 것입니다.

참고: 필터는 logcat Monitor에 현재 표시되어 있는 메시지뿐 아니라 전체 logcat 기록에도 적용됩니다. 조사하려는 필터 출력을 볼 수 있도록 다른 표시 옵션이 알맞게 설정되어 있는지 확인하세요.

필터 정의 및 적용 방법은 다음과 같습니다.

  1. 필터 메뉴에서 필터 옵션을 선택합니다.
    • Show only selected application - 앱 코드에서 생성되는 메시지만 표시합니다(기본 설정). logcat Monitor는 활성 앱의 PID를 사용하여 로그 메시지를 필터링합니다.
    • No Filters - 아무런 필터도 적용하지 않습니다. logcat Monitor는 개발자가 선택한 프로세스에 상관없이 기기에서 수신되는 모든 로그 메시지를 표시합니다.
    • Edit Filter Configuration - 사용자설정 필터를 생성하거나 수정합니다. 예를 들어, 두 앱의 로그 메시지를 동시에 볼 수 있는 필터를 생성할 수도 있습니다.

    필터를 정의한 후 메뉴에서 이러한 필터를 선택할 수도 있습니다. 필터를 메뉴에서 제거하려면 필터를 삭제하세요.

  2. Edit Filter Configuration을 선택한 경우 필터를 생성하거나 수정합니다.
    1. Create New Logcat Filter 대화상자에서 필터 매개변수를 다음과 같이 지정합니다.
      • Filter Name - 정의하려는 필터의 이름을 입력하거나 왼쪽 창에서 기존 필터를 선택하여 수정합니다. 이름을 지정할 때 소문자, 밑줄, 숫자만 사용할 수 있습니다.
      • Log Tag - 태그를 지정합니다(선택 항목). 자세한 정보는 logcat 메시지 형식을 참조하세요.
      • Log Message - 로그 메시지 텍스트를 지정합니다(선택 항목). 자세한 정보는 logcat 메시지 형식을 참조하세요.
      • Package Name - 패키지 이름을 지정합니다(선택 항목). 자세한 정보는 logcat 메시지 형식을 참조하세요.
      • PID - 프로세스 ID를 지정합니다(선택 항목). 자세한 정보는 logcat 메시지 형식을 참조하세요.
      • Log Level - 로그 레벨을 선택합니다(선택 항목). 자세한 정보는 로그 레벨 설정을 참조하세요.
      • Regex - 특정 매개변수에 대한 정규 표현식 구문을 사용하려면 이 옵션을 선택합니다.
    2. 왼쪽 창에 필터 정의를 추가하려면 +를 클릭하세요.
    3. 필터를 삭제하려면 왼쪽 창에서 삭제할 필터를 선택한 후 -를 클릭하세요.

    4. 위 단계를 마쳤으면 OK를 클릭합니다. Cancel을 클릭하면 필터 추가 또는 수정 내용이 전부 취소됩니다.
  3. 조사하려는 로그 메시지가 표시되는지 확인하세요.
  4. 원하는 로그 메시지가 표시되지 않으면 No filters를 선택하고 해당 로그 메시지를 검색해 보세요.

logcat 헤더 표시 구성

관심 있는 정보만 표시하도록 헤더 표시를 맞춤설정하는 방법은 다음과 같습니다.

메시지 요소에 대한 자세한 정보는 logcat 메시지 형식을 참조하세요.

스택 추적 위로 이동 및 아래로 이동

앱에서 예외가 발생하면 메시지에 메서드 호출의 스택 추적이 포함됩니다. logcat Monitor를 사용하면 로그에서 스택 추적을 빠르게 찾아서 Code Editor에서 관련 코드를 볼 수 있습니다. 가능하다면 필요에 따라 디컴파일러에서 개발자가 볼 수 있도록 파생된 소스 코드를 제공합니다.

Code Editor에서 스택 추적을 위아래로 이동하면서 관련 코드를 보는 방법은 다음과 같습니다.

로그 끝으로 이동

특정 메시지를 클릭하면 메시지 표시가 중지됩니다.

실시간 메시지 흐름을 보기 위해 로그 끝으로 빠르게 이동하는 방법은 다음과 같습니다.

파일 인쇄 및 파일에 쓰기

로그 정보를 보존하려면 로그를 프린터로 보내어 출력하거나 PDF 파일에 로그를 작성하거나 로그를 복사하여 텍스트 파일에 붙여넣으면 됩니다.

로그를 인쇄하거나 PDF 파일에 작성하려면 다음 절차를 따르세요.

  1. Print를 클릭합니다 Print 아이콘.
  2. Android Studio Print 대화상자에서 인쇄 매개변수를 변경한 다음(선택 사항), Print를 클릭합니다.
  3. 운영체제 Print 대화상자에서 인쇄 매개변수를 변경한 다음(선택 사항), Print를 클릭합니다.
  4. 로그를 프린터로 보내어 인쇄하거나 PDF 파일에 작성하는 매개변수를 설정할 수 있습니다.

로그를 텍스트 파일에 복사하려면 다음 절차를 따르세요.

  1. logcat Monitor에서 로그 텍스트를 선택한 후 복사합니다.
  2. 모두 선택하려면 Ctrl+A(⌘A)를 누르세요.

  3. 텍스트 편집기를 열고 파일에 텍스트를 붙여넣습니다.

로그 정리 및 다시 시작

전체 로그를 지우는(플러시) 방법은 다음과 같습니다.

문제가 있는데 로그가 더 이상 이를 처리하지 못할 경우 다음과 같이 로그를 다시 시작할 수 있습니다.

코드에 로그 메시지 추가

Log 클래스를 사용해 logcat Monitor에 나타나는 로그 메시지를 생성할 수 있습니다. 일반적으로 다음과 같은 로그 메서드를 사용해야 하며, 우선순위가 가장 높은 것부터(또는 상세 수준이 가장 낮은 것부터) 순서대로 표시되어 있습니다.

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

개발 단계를 제외하면 상세 로그를 앱으로 컴파일하면 안 됩니다. 런타임에서 디버그 로그는 컴파일되지만 삭제되는 반면에 오류, 경고 및 정보 로그는 항상 그대로 유지됩니다.

각 로그 메서드에서 첫 번째 매개변수는 고유 태그이며 두 번째 매개변수가 메시지입니다. 시스템 로그 메시지의 태그는 메시지가 시작되는 시스템 구성 요소를 나타내는 짧은 문자열입니다(예: ActivityManager ). 태그는 현재 클래스의 이름처럼 유용하다고 생각하는 문자열일 수 있습니다.

첫 번째 매개변수에서 사용할 클래스에 TAG 상수를 선언하는 것을 규칙으로 삼는 것이 좋습니다. 예를 들어, 다음과 같은 정보 로그 메시지를 생성할 수 있을 것입니다.

private static final String TAG = "MyActivity";
...
Log.i(TAG, "MyClass.getView() — get item number " + position);

참고: 23자를 초과하는 태그 이름은 logcat 출력에서 잘립니다.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)