Merry Christmas

'유라이프 기술개발 자료/로깅'에 해당되는 글 2건

  1. 2012.02.08 SLF4J 설정(log4j기반)
  2. 2012.02.08 SLF4J 를 사용하는 이유

기본적으로 이클립스 프로젝트를 생성한다.
나같은 경우는 Dynamic Web Project 기반으로 할것이다.

관련 URL : http://kkang2.tistory.com/entry/이클립스-기본프로젝트-구성

1. http://slf4j.org/download.html 에 접속해서 환경에 맞는 slf4j 파일을 다운로드 한다. 

2. 아파치 사이트에서 log4j를 다운로드 받는다. http://logging.apache.org/log4j/1.2/download.html

3. 압축을 풀면 많은 jar파일들이 있는데 이중에서 로깅구현체를 log4j로 사용하기 위한 jar파일들을 설명하겠다.
    slf4j-api-1.6.4.jar : 가장중요한 핵심 jar파일이다.
    slf4j-log4j12-1.6.4.jar : log4j 와 slf4j를 연결시켜주는 라이브러리 이다.
    log4j-1.2.16.jar : 현재 가장 안정적이면서 최신버전인 log4j다.
    
4. 위의 3가지 jar파일을 WEB-INF폴더의 lib폴더에 놓고 아래와 같이 샘플코드를 돌려본다.
    그럼 "후후후" 가 뜨지않고 아래와 같이 경고문구만 뜬다. -_-
    이를 해결하기 위해서는 log4j.xml 을 설정해 줘야 하는데 이는 다음글에서 얘기하고자 한다.


log4j.xml 설정없이 로그를 찍고 싶다면 아래와 같이 코드를 수정해 준다.

'유라이프 기술개발 자료 > 로깅' 카테고리의 다른 글

SLF4J 를 사용하는 이유  (0) 2012.02.08
Posted by 말라깽
:
일반적으로 사용되는 Facade 로깅 라이브러리 는 JCL(http://commons.apache.org/logging/), SLF4J(http://www.slf4j.org/)
두개인거 같다.

이 두개의 라이브러리 모두 실제 로깅처리는 log4j 같은 실제 구현라이브러리들에 처리를 맡기는 구조이다.

자 그럼 이 두개의 라이브러리 중에 어떤걸 주로 쓰느냐 하면 SLF4J 라이브러리 이다.

JCL은 실제 로그 구현체를 선택하는 시점이 런타임이라 다중 클레스로더(ClassLoader)를 사용하는 환경에서 문제가
될수 있고 런타임시점에 동작하기 때문에 성능상에 이슈 또한 있다고 한다.

더불어서 SLF4J는 로그 출력시 포멧팅을 지원하기 때문에 JCL을 사용할때의 아래와 같은 불편함을 해결해준다.
성능상 심하게는 30배정도 더 빠르다고 한다. 믿거나 말거나..-_-

EX) JCL
if( log.isDebugEnabled() ) {
    log.debug(name + "님 안녕하세요");
}

EX) SLF4J
logger.deubg("{}님 안녕하세요", name);

이 두개의 예들은 같은 결과를 만들지만 보다시피 JCL을 사용할때 로그레벨을 확인하는 IF문이 SLF4J에는 빠져있다.
또한 SLF4J는 해당로그 레벨에서만 인자로 주어진(name) 값을 적용하기 때문에 로그레벨을 더이상 걱정할 필요가 없다.


참고 URL
http://blog.kangwoo.kr/52
http://www.slf4j.org/manual.html
http://kaludin.egloos.com/2799535
http://whiteship.tistory.com/2541

'유라이프 기술개발 자료 > 로깅' 카테고리의 다른 글

SLF4J 설정(log4j기반)  (0) 2012.02.08
Posted by 말라깽
: