본문 바로가기

Java

[박혜웅] Install, configure, sample code for log4j (기초 사용법)

log4j는 콘솔과 파일로 로그를 관리할 때 거의 필수적인 Java용 공개 라이브러리이다.


로그레벨: DEBUG < INFO < WARN < ERROR < FATAL
예를 들어, 설정파일(log4j.properties)에서 log level을 ERROR 로 했다면, 그 상위 레벨인 ERROR,FATAL의 로그만 출력된다.
일반적으로 운영에 필요한 내용은 INFO로, 개발자에게 필요한 내용은 DEBUG로 코딩한 후, 프로그램 실행시 적절하게 수정하자.

1. 설치
위 다운로드 사이트에서 파일을 다운로드 받아서 log4j-1.2.16.jar를 프로젝트에 추가한다.

2. 설정 
각종 설정을 클래스를 이용하여 코딩할 수 있으나, log4j.properties(설정파일)로 설정하는 것이 관리에 용이하다.
기본적으로 log4j.properties는 소스폴더(JAVA 기본 프로젝트일 경우 src/) 또는 클래스패스에 위치하면 된다.
만약 경로를 임의로 수정해야 한다면, 아래처럼 강제로 지정해 줄 수 있다.
PropertyConfigurator.configure( "./conf/log4j.properties" );

3. 설정파일(log4j.properties) 예제
# DEBUG, INFO, WARN, ERROR, FATAL
log4j.rootLogger=DEBUG, A1, A2
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=test.log
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %-5p [%l] - %m%n
log4j.appender.A2=org.apache.log4j.ConsoleAppender
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %-5p [%l] - %m%n

4. 소스 예제
package com.bagesoft.test;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class Log4JTest {
static Logger logger = Logger.getLogger(Log4JTest.class);

public static void main(String[] args) {
PropertyConfigurator.configure("./log4j.properties");

logger.debug("this is debug level");
logger.info("this is debug info");
}
}

5. 출력 결과(콘솔 및 파일)
[2010-12-15 10:54:55] DEBUG [com.bagesoft.test.log4j.Log4JTest.main(Log4JTest.java:12)] - this is debug level
[2010-12-15 10:54:55] INFO  [com.bagesoft.test.log4j.Log4JTest.main(Log4JTest.java:13)] - this is debug info