본문 바로가기

나는개발자다/기타

Log4J 간단 사용 정리.

프로젝트를 하면서 중요한것은 data가 정확하게 저장 or return 되는지가 중요하다.

System.out.println를 사용하게 되면 되겠지만 나중에 릴리즈 즉 서비스를 할 때는 System.out.println을 지워야 한다.  당연 말이 안되는 작업이다.

그래서 Logging이라는것을 사용하는데.

일단 Log4j의 간단한 사용법을 알아보자.
개발툴은 Eclipse .

Log4J 다운 받기
http://logging.apache.org/log4j/1.2/download.html 

2011-7-18일 버전은 1.2.16이다.

log4j-1.2.16.jar 파일을 build path에 추가한다.

Log4JTest_NoneXML.jar 파일을 압축풀면 eclipse에서 import하면 된다.
 
// test code..
 
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
 

public class Test {

// Logger 클래스의 인스턴스를 받아온다.
static Logger logger = Logger.getLogger(Test.class);

public Test() {
}

public static void main(String[] args) {

BasicConfigurator.configure();

logger.debug("Hello log4j.");
logger.info("Hello log4j.");
logger.warn("Hello log4j.");
logger.error("Hello log4j.");
logger.fatal("Hello log4j.");
//loger.log( Level.DEBUG , "debug") 와 동일하다.
}
}
 

출력 결과는 

0 [main] DEBUG Test  - Hello log4j.
1 [main] INFO Test  - Hello log4j.
1 [main] WARN Test  - Hello log4j.
1 [main] ERROR Test  - Hello log4j.
1 [main] FATAL Test  - Hello log4j.

출력 결과 형식은 당연하게 변경할 수 있다.
test code에서는  BasicConfigurator.configure() 를 호출해서 출력 형식을 설정하였다.
BasicConfigurator.configure() 호출하면 아래 pattern 형식으로 내용이 나오게 된다.
 public final static String TTCC_CONVERSION_PATTERN = "%r [%t] %p %c %x - %m%n";

만약 BasicConfigurator.configure()를 주석처리 하게 되면 Log4j가 실행하지 못하게 된다. log4j는 처음 시작할 때 
log4j.xml , log4j.properties 를 순서대로 찾는다. 이 두 파일이 없으면 실행이 안 된다.. 이 두 파일을 class path에 추가 해야 한다ㅏ.


log4j가 실행이 되지 않을 때 에러 메세지.
log4j:WARN No appenders could be found for logger (Test).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.


이 글에서는 log4j.xml 를 이용해서 logging 하는것을 알아본다.

log4j.xml 파일은 인터넷에 샘플로 많이 있다.

주의할 점은 위에서 말했듯이 log4j.xml 이 class path내에 포함 되어야 한다는것이다.
Log4jTest_XML.jar을 압축 풀고 import하게 되면 conf라는 소스폴더가 있는데
conf 바로 밑에 log4j.xml 이 있다. 이 log4j.xml파일을 삭제하고 실행하게 되면 log4j가 실행되지 않는다.

프로젝트 실행 결과.
[2011-07-18 13:47] ERROR [Test(main:24)] :Hello log4j.
[2011-07-18 13:47] FATAL [Test(main:25)] :Hello log4j. 

[2011-07-18 13:47] DEBUG [Test(main:21)] :Hello log4j.
[2011-07-18 13:47]  INFO [Test(main:22)] :Hello log4j.
[2011-07-18 13:47]  WARN [Test(main:23)] :Hello log4j.

실행하게 되면 logs라는 폴더가 생기고 그 밑에 debug.log 라는 파일이 생긴다.
xml에 appender라는 parameter가 있는데 이에 대한 부분은 인터넷 검색을 하면 된다.

참고하면 좋은 사이트.
http://50001.com/language/javaside/eyjin/2-2/8-1.html