Logging

apache의 commons-logging 에 log4j를 사용 하는 예.

필요한 라이브러리 : commons-logging-1.1.1.jar, log4j-1.2.15.jar (버전은 알아서)

1. commons-logging.properties 설정.
logging으로 Log4JLogger를 사용하겠다고 하는 설정.
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

2. log4j.properties 설정.
실제로 log를 어떻게 생성할 지에 대한 설정.
#Logging directory
log.dir=${catalina.home}/logs
#Log file name
log.file=appName.log

log4j.rootLogger = INFO,consoleout,dailyfile
log4j.logger.com.example = ALL

log4j.appender.consoleout = org.apache.log4j.ConsoleAppender
log4j.appender.consoleout.layout = org.apache.log4j.SimpleLayout

#Roll the files over daily with a date stamped name
log4j.appender.dailyfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyfile.File=${log.dir}/${log.file}
log4j.appender.dailyfile.DatePattern='.'yyyy-MM-dd
log4j.appender.dailyfile.layout=org.apache.log4j.PatternLayout
#log4j.appender.dailyfile.layout.ConversionPattern=%5p %d{yyyy-MM-dd HH:mm:ss} - %m%n
log4j.appender.dailyfile.layout.ConversionPattern=%5p <%d>[%C] %m%n
위 예제에서 보면, log dir를 설정했고, log 파일의 이름을 appName.log로 설정했다. 그리고, INFO level 이상만 보이도록 설정하였다. 로그는 두개로 지정했는데, 하나는 console 에 보여지는 것이고 다른 하나는 Daily Rolling으로 파일을 만들도록 설정했다. Daily Rolling이란, 매일 남길 로그 파일의 이름에 DatePattern(yyyy-MM-dd) 으로 날짜를 더해서 로그 파일을 만드는 것이다.

3. properties 파일의 위치
위의 두 properties 파일은 webcontext 의 classes 폴더 아래에 위치 시켜야 한다.

4. 사용 방법
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class LogTest {    

    private Log log = LogFactory.getLog(LogTest.class);
    
    public void logTest(){
        System.out.println("log.isDebugEnabled() :: "+log.isDebugEnabled());
        if(log.isDebugEnabled()){
            log.debug("log.isDebugEnabled() : log.debug test");
        }
         if(log.isDebugEnabled()){
           log.debug("log.debug test...");
       }
         if(log.isDebugEnabled()){
            log.info("log.info ..");
       }
        
        try{
            int aa = 60;
            int bb = 0;
            
            int result = aa/bb;
        }catch(Exception e){
            if(log.isTraceEnabled()){
                log.trace("Exception 발생",e);
          }
        }
    }

}

위의 log4j.properties에서 log4j.rootLogger = DEBUG, INFO,consoleout,dailyfile 설정한다면 log.debug()로도 로그가 남겨진다.

아래 사이트는 logging에 대해서 잘 설명되어 있다.

http://www.java-school.net/java/Logging.php

'개발' 카테고리의 다른 글

Maven Getting Started Guide(2)  (0) 2008.11.07
Maven Getting Started Guide(1)  (0) 2008.11.07
Logging  (0) 2008.08.12
JSONP with dojo  (4) 2008.07.17
Top 10 Mistakes when building Flex Applications  (1) 2008.04.23
Struts2 - struts.xml 에서 설정해야 할 것  (2) 2008.04.12
TRACKBACK 0 COMMENT 0