본문 바로가기

Dev/Spring Boot

Spring Boot - 로그를 남기는 법 : @SLF4J

728x90

로깅에 대한 추상 레이어를 제공하는 인터페이스의 모음.

 

1. Log Level

 

  Trace Debug Info Warn Error
Trace O O O O O
Debug X O O O O
Info X X O O O
Warn X X X O O
Error X X X X O

 

Trace : 디버그보다 좀 더 상세한 정보를 나타냄

Debug : 프로그램을 디버깅하기 위한 정보 지정

Info : 상태변경과 같은 정보성 메세지를 나타냄

Warn : 처리가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메세지를 나타냄

Error : 요청을 처리하는 중 문제가 발생한 경우

 

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

public class Slf4jSample {
    private static final Logger log = LoggerFactory.getLogger(Slf4jSample.class);

    public static void main(String[] args) {
        log.info("---------- Log 테스트 ---------");
    }
}

 

어노테이션을 사용하지 않으면 이러한 방식으로 사용하게 될 것이다.

 

@Slf4j
public class Slf4jSample {

    public static void main(String[] args) {
        log.info("---------- Log 테스트 ---------");
    }

}

 

동일하게 로그가 찍힌다. 그러나 훨씬 코드가 간결하고 편리하다.

 

로그는 C의 printf 처럼 사용이 가능하다. 

 

@Slf4j
public class Slf4jSample {
    public static void main(String[] args) {
        String value1 = "1번값";
        String value2 = "2번값";
        log.info("---------- Log 테스트 ---------");
        log.info("1번의 값은 : "+value1 + " 2번의 값은 : "+value2);
        log.info("1번의 값은 : {} 2번의 값은 : {}", value1, value2);
    }
}

 

20200616 15:36:09.144 [main] INFO b.Slf4jSample - ---------- Log 테스트 ---------
20200616 15:36:09.148 [main] INFO b.Slf4jSample - 1번의 값은 : 1번값 2번의 값은 : 2번값
20200616 15:36:09.149 [main] INFO b.Slf4jSample - 1번의 값은 : 1번값 2번의 값은 : 2번값