Notice
Recent Posts
Recent Comments
Link
관리 메뉴

설.현.아빠

[2011.02.07] Log4j와의 첫만남... 본문

안드로이드/Debug

[2011.02.07] Log4j와의 첫만남...

설.현.아빠 2011. 2. 11. 09:47

역시 세상에 만만한건 없다더니...에러 발생시 메일을 통해서 로그를 전달받도록 구현하기 위해 알아본 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
    public void onCreate(Bundle savedInstanceState) {

        String logPattern = "[%d{yyyy-MM-dd HH:mm:ss}] %-5p [%l] - %m%n";
        Appender consoleAppender = new ConsoleAppender(new PatternLayout(logPattern));

        log.addAppender(consoleAppender); 

        // 위에 코드를 안넣으면 warning이 발생하면서 로그를 볼 수 없었다...

        // 많은 사람들이 나와 동일한 warning을 보고 해결책까지 제시해주었지..^^감사합니다.
        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);
      }

 

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...
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


 

INFO라서 초록색으로 뜨셨다는....ㅋㅋ 산뜻하고 좋네. 이제 이걸...메일로 보낼 수 있도록 해야하는데...

검색해보니까... SMTP를 통해서 해야하는것 같은데...차근차근 해보자!!

Comments