2013년 12월 11일 수요일

005. Log4j를 이용한 로그 남기기

/*
오래전에 작성한 log4j도 있지만
slf4j는 log4j와 거의 똑같이 사용하면서 로깅시 필요한 메시지 조합(?)을
좀 더 간편하게 할 수 있게 해준다.

관련정보 보기 -- http://www.slf4j.org/

예를들어 log4j에서 로깅 메시지를 다음과 같이 출력했다고 가정한다면..

log4j
String message = "iS DEBUG!";
String clsName = this.getClass().getName();
log.debug("debug message :" + message + " this class : " + clsName);

slf4j
String message = "iS DEBUG!";
String clsName = this.getClass().getName();
log.debug("debug message : {} this class : {}" ,message, clsName);

2개 이상의 파라미터는 new Object[] {} 를 이용해서 넘겨주면 된다.

=================================================================================
현재 추세는 Slf4J인 듯 하다. 사용하기 편하고 성능또한 좋다.
여하튼 지금 Slf4J를 가볍게 알아보자.
slf4j는 jdk, common_log, log4j 등등의 로깅 framework를 통합해서 사용할 수 있는 로깅 framework이다.

slf4j와 log4j를 위한 필수 jar들
slf4j-api-xxx.jar      
log4j-xxx.jar
slf4j-log4j12-xxx.jar

eclipse에서slf4j-api-1.6.1.jar 를 Build Path에 추가한 후 실행 해 보자.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further
       details.

위와 같은 에러 메세지가 나올것이다.
slf4j에서 binding 할 Loggig framework를 찾지 못해서 나온 에러이다.

slf4j-simple-1.6.1.jar 파일을 Eclipse의 Build Path에 추가한 후 실행해본다.
 0 [main] INFO HelloWorld - Hello World
로깅 출력이 되엇다.

기본적인 SLF4J 설정이 완료 되었다.
 */

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Log4J_Sample005_slf4J {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(Log4J_Sample005_slf4J.class);
logger.info("Hello World");
}
}

댓글 없음:

댓글 쓰기