개발/개발관련

log4j , slf4j 뭐지 이게

Ddil_ 2019. 1. 25. 14:20

slf4j(Simple Logging Facade For Java)

log4j, log4j2, logback, commons-logging 등을 위한 추상화 제공

ex. log4j에서 log4j2로 변경할 경우 리소스 발생. 이럴 경우에 slf4j를 사용하고 log4j를 연결하고 log4j2로 변경하고싶을때 2로 연결을 바꿔주면 됨


log4j

로깅을 위한 라이브러리이다. system.out.println()은 운영환경에서는 리소스낭비이다

특징

 - system.out.println() 에 비해 속도가 훨씬 좋다.

 - 멀티스레드 환경에서 사용해도 안전하다.

 - 계층적인 로그 설정과 처리가 가능하다.

 - 출력을 콘솔, 파일, 원격, email, DB 등 다양하게 가능하다.

 - log4j2가 나온뒤로 추후에 중단될 수도 있다는 루머가 있다. (log4j대신 log4j2를 쓰자)

예시 코드(slf4j - log4j)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package test;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
 
public class test {
    private static final Logger log = LoggerFactory.getLogger(test.class);
 
    public test(){
 
    }
 
    public static void main(String[] args) {
        log.info("info"); 
        log.debug("debug"); 
        log.warn("warn"); 
        log.error("error"); 
        log.trace("trace");
 
    }
 
}
 
cs


logback 같이 로깅을 위한 다른 방법이 있는데 log4j가 주변에서 많이 쓰이고 있으니 따라가자

바꾸려면 다같이 바꿔야한다는 생각을 가지고 있어야하므로..

728x90