로그 남기기
참고 프로젝트: LogDemoA1
안드로이드에서 로그를 남기기 위해서는 android.util.Log 클래스를 사용해야 한다. 이 클래스를 사용해서 로그 레벨에 맞게 로그를 적당한 곳에 작성하면 된다. 로그 레벨은 Verbose부터 Error까지 남길 수 있으며, 이러한 레벨을 구분하여 로그를 적재적소에 남기는 것은 개발자의 몫이다.
정리 안드로이드 로그
로그 레벨 | 설명 및 방법 |
---|---|
Error | 가장 심각한 문제가 발생했을 때 남기는 로그 Log.e("tag", "error message"); |
Warning | 심각하지는 않지만 나중에라도 문제의 소지가 있을 수 있어 남기는 로그 Log.w("tag", "warning message"); |
Infomation | 어떤 처리를 하면서 발생하는 진행 과정 등을 모니터링하기 위한 목적으로 남기는 로그 Log.i("tag", "information message"); |
Debugging | 디버깅 목적으로 문제 발생 가능성이 있는 곳에 남기는 로그 Log.d("tag", "debugging message"); |
Verbose | 동작 여부를 최대한 자세히 살펴볼 목적으로 남기는 로그 Log.v("tag", "verbose message"); |
이제 프로젝트를 하나 생성하고 onCreate() 메소드에 로그를 작성해보겠다.
코드 Main.java
package com.androidside.logdemoa1;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.e("tag", "error message");
Log.w("tag", "warning message");
Log.i("tag", "information message");
Log.d("tag", "debugging message");
Log.v("tag", "verbose message");
}
}
이제 이 프로젝트를 실행하고 LogCat을 살펴보도록 하자. LogCat이 이클립스에서 보이지 않는다면 이 책의 부록 "이클립스 개발 환경 구성하기"를 참고해서 이클립스를 새로 구성하도록 하자.
다음과 같이 Log 탭에 로그가 찍힌 것을 확인할 수 있을 것이다. 기본적으로 로그캣은 애플리케이션별로 로그를 구분해서 보여준다. 그래서 왼쪽에 com.androidside.logdemoa1은 지금 실행하고 있는 애플리케이션의 패키지명이다.
안드로이드 3.0부터는 패키지명으로 로그를 자동으로 분류해서 보여주기 때문에 로그를 보는 것이 이전보다는 많이 편해졌다. 하지만 로그가 많을 경우에, 원하는 로그만 보기에는 여전히 충분하지 않다. 그래서 이런 경우에는 태그(tag) 필터링 기능을 사용해야 한다. LogCat의 왼쪽에 있는 녹색 십자가 모양을 클릭해서 다음 그림처럼 입력하면 로그를 원하는데로 분류해서 볼 수 있다. 필터링 옵션에는 태그(by Log Tag), 로그 메시지(by Log Message), 프로세스 아이디(by PID), 애플리케이션 패키지명(by Application Name), 로그 레벨(by Log Level)이 있다. 그리고 필터 이름(Filter Name)은 추가된 필터들을 구분하기 위한 이름이므로 실제로 필터링하는 것과는 상관없다는 것에 주의해야 한다.
필터링을 추가하여, 로그 태그를 tag로 하고 로그 메시지는 error로 그리고 애플리케이션 패키지명은 com.androidside.logdemoa1로 해서 로그를 필터링하면 다음처럼 나오는 것을 확인할 수 있다.
만약 로그가 찍히지 않는다면, 다음의 TIP & TECH을 참고해서 조치하기 바란다.
TIP & TECH 로그가 보이지 않을 경우의 조치 방법
개발을 진행하다 보면 로그가 하나도 안 보이는 경우가 있다. 일반적으로 로그가 보이지 않으니 에러가 없다고 생각하기 쉬우나 로그캣 창에 보이는 로그는 에러가 발생했을 때만 남는 것이 아니므로, 로그는 항상 계속 올라가고 있어야 한다. 로그가 안 보이는 경우에는 디바이스(Devices) 창에 있는 에뮬레이터를 마우스로 한 번 선택해주기 바란다.
이렇게 선택하면 로그가 주르륵 올라가는 것을 볼 수 있을 것이다. 즉, 로그가 보이지 않았던 이유는 에뮬레이터가 선택되어 있지 않았기 때문이다.
TIP & TECH 에뮬레이터나 안드로이드 기기의 화면 캡쳐 방법
Devices 창에서 화면을 캡쳐하고 싶은 에뮬레이터나 안드로이드기기를 선택한 다음에 오른쪽에 있는 카메라 버튼을 클릭하면 화면을 캡쳐할 수 있다. 이 책의 화면들은 이런 방식으로 캡쳐한 것이다.