2011년 8월 12일 금요일

log4j 사용하기



log4j 설정

* 이클립스를 사용하고 Dynamic Web Project 라는 가정하에 설명

다운로드
http://logging.apache.org/log4j/1.2/download.html


설정
log4j는 log4j.properties 파일로 설정
src 디렉토리 아래에 log4j.properties 파일을 생성
(파일 저장시 이클립스가 log4j.properties 파일을 WEB-INF/classes로 알아서 복사함)
log4j.properties 파일을 아래와 같이 편집

--------------------------------------------------------------------------------
log4j.rootLogger=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Print only messages of level ERROR or above in the package noModule.
log4j.logger.noModule=WARN

# Pattern to output the caller's file name and line number.
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L) - %m%n

# file log
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=C:/app/apache-tomcat-6.0.29/logs/myapp_erp.log
log4j.appender.logfile.MaxFileSize=100000KB
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[%d{HH:mm:ss}][%-5p](%F:%L) - %m%n

# OpenSymphony Stuff
log4j.logger.com.opensymphony=WARN
log4j.logger.org.apache.struts2=WARN

# Spring Stuff
log4j.logger.org.springframework=WARN

########################## APPLICATION LOG CONFIGURATION ###########################

log4j.logger.com.test=DEBUG, logfile
log4j.logger.com.test.Tester=INFO, logfile

log4j.logger.com.test=DEBUG, stdout
log4j.logger.com.test.Tester=INFO, stdout
--------------------------------------------------------------------------------

APPLICATION LOG CONFIGURATION 이후의 내용을 수정
log4j.logger 이후에 설정할 패키지명 역순으로 적고 로그레벨과 appender 이름을 입력
위의 경우 com.test.Tester 클래스는 INFO level로 com.test 이하에 속한 패키지의 클래스들은 DEBUG 레벨로 로그가 기록


** 참고: 로그레벨
1. DEBUG (the least serious)
2. INFO
3. WARN
4. ERROR
5. FATAL (the most serious)


JAVA 클래스에서 사용예
--------------------------------------------------------------------------------
public class Tester {
  private Logger logger = Logger.getLogger(Tester.class);
  ...

  public void logIt() {
    logger.info("im info log");
    logger.debug("im debug log");
  }
  ...
}
--------------------------------------------------------------------------------


JSP 클래스에서 사용예
--------------------------------------------------------------------------------
org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(this.getClass());

logger.info("im info log");
logger.debug("im debug log");
--------------------------------------------------------------------------------


댓글 없음:

댓글 쓰기