설.현.아빠
[2011.02.07] Log4j와의 첫만남... 본문
역시 세상에 만만한건 없다더니...에러 발생시 메일을 통해서 로그를 전달받도록 구현하기 위해 알아본 Log4j란 놈...어렵다.. 하루종일 구글링을 해도 log4j.properties 를 설정하라는데...해당파일은 찾지도 몬하겠고..어휴... 그래도 나름의 수확이 있었다.. 1. 우선 http://logging.apache.org/log4j/1.2/download.html 모두가 여기서 다운로드를 받으라고 한다. 난 apache-log4j-1.2.16.zip 파일을 받아서 압축을 풀었다. 2. 폴더 안에는 log4j-1.2.16.jar 파일이 있었고...해당 jar파일을 내가 작성하는 프로젝트의 라이브러리로 등록시켰다. 3. import org.apache.log4j.*; public class KensCafe extends Activity { public static Logger log = Logger.getRootLogger(); @Override String logPattern = "[%d{yyyy-MM-dd HH:mm:ss}] %-5p [%l] - %m%n"; log.addAppender(consoleAppender); // 위에 코드를 안넣으면 warning이 발생하면서 로그를 볼 수 없었다... // 많은 사람들이 나와 동일한 warning을 보고 해결책까지 제시해주었지..^^감사합니다. 4. 결과 LogCat을 통해 아래 로그를 확인 할 수 있었다. 02-07 07:49:30.947: INFO/System.out(1569): [2011-02-07 07:49:30] INFO [lee.android.KensCafe.KensCafe.onCreate(KensCafe.java:50)] - Starting up... INFO라서 초록색으로 뜨셨다는....ㅋㅋ 산뜻하고 좋네. 이제 이걸...메일로 보낼 수 있도록 해야하는데... 검색해보니까... SMTP를 통해서 해야하는것 같은데...차근차근 해보자!!
public void onCreate(Bundle savedInstanceState) {
Appender consoleAppender = new ConsoleAppender(new PatternLayout(logPattern));
log.info("Starting up...");
log.setLevel(Level.WARN);
log.info("This message should not appear!");
try {
// Divide by zero.
int x = 5;
x = 20 / (5 - x);
} catch (Exception e) {
log.error("Oops!", e);
}
02-07 07:49:31.018: INFO/System.out(1569): [2011-02-07 07:49:30] ERROR [lee.android.KensCafe.KensCafe.onCreate(KensCafe.java:58)] - Oops!
02-07 07:49:31.018: INFO/System.out(1569): java.lang.ArithmeticException: divide by zero
02-07 07:49:31.027: INFO/System.out(1569): at lee.android.KensCafe.KensCafe.onCreate(KensCafe.java:56)
02-07 07:49:31.027: INFO/System.out(1569): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-07 07:49:31.037: INFO/System.out(1569): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)
02-07 07:49:31.037: INFO/System.out(1569): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
02-07 07:49:31.037: INFO/System.out(1569): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-07 07:49:31.047: INFO/System.out(1569): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
02-07 07:49:31.047: INFO/System.out(1569): at android.os.Handler.dispatchMessage(Handler.java:99)
02-07 07:49:31.047: INFO/System.out(1569): at android.os.Looper.loop(Looper.java:123)
02-07 07:49:31.047: INFO/System.out(1569): at android.app.ActivityThread.main(ActivityThread.java:3647)
02-07 07:49:31.057: INFO/System.out(1569): at java.lang.reflect.Method.invokeNative(Native Method)
02-07 07:49:31.057: INFO/System.out(1569): at java.lang.reflect.Method.invoke(Method.java:507)
02-07 07:49:31.057: INFO/System.out(1569): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-07 07:49:31.057: INFO/System.out(1569): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-07 07:49:31.057: INFO/System.out(1569): at dalvik.system.NativeStart.main(Native Method)
02-07 07:49:31.576: INFO/ActivityManager(60): Displayed lee.android.KensCafe/.KensCafe: +1s539ms
'안드로이드 > Debug' 카테고리의 다른 글
안드로이드 간단한 Logging class (0) | 2011.02.11 |
---|---|
[개발 Tip] 안드로이드 비정상 종료시 충돌 (crash)정보 가져오기 (0) | 2011.02.11 |
[Log4J] 간단한 소개 (0) | 2011.02.11 |
log4j의 사용 (0) | 2011.02.11 |
Log4j.properties 설정 파일 작성 방법 (0) | 2011.02.11 |