스프링부트 로깅 - @Slf4j 이용방법

slf4j란?

전역으로 처리하는 exception handler에서 Slf4j를 이용하는데, 로깅에 대한 추상 레이어를 제공하는 인터페이스의 모음이다.
인터페이스를 사용하여 로깅을 구현하게 되면 추후에 로깅 라이브러리를 변경할 때 코드의 변경 없이 할 수 있다.

application.yml 설정 ( spring boot 2.3.1 )

logging:
  file:
    name: ${user.dir}/log/test.log  # 로깅 파일 위치이다.
    max-history: 7 # 로그 파일 삭제 주기이다. 7 이후 로그는 삭제한다.
    max-size: 10MB  # 로그 파일 하나당 최대 파일 사이즈이다.
  level:  #  package 별로 로깅 레벨을 지정할  있다.
    com.project.study : error
    com.project.study.controller : debug

Maven or Gradle 에 lombok 라이브러리 추가

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<optional>true</optional>
</dependency>

@SLF4J 사용법

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
@Slf4j
public class TestController {
    @GetMapping("/")
    public String String(String str){
        try {
            str.toString();
        } catch (NullPointerException e){
            log.trace("가장 디테일한 로그");
            log.warn("경고");
            log.info("정보성 로그");
            log.debug("디버깅용 로그");
            log.error("에러",e);
        }
        return "test";
    }
}

로깅이 필요한 부분에는 log 변수로 로그를 생성하면 된다.
로깅 레벨은 (많은 로깅) trace > warn > info > debug > error (적은 로깅) 순이다.

Categories:

Updated:

Comments