카테고리 없음
Spring boot logging - @Slf4j 어노테이션 사용법 - 삽질중인 개발자
개발 N년차
2021. 1. 9. 00:11
반응형
개발을 하거나 운영을 하는 상황에서 LOGGING 은 아주 중요하다.
Spring boot에서는 로그를 남기는 방법이 많이 있다.
그중 가장 편하게 사용되는 @Slf4j 어노테이션을 알아보자.
SLF4J 란?
로깅에 대한 추상 레이어를 제공하는 인터페이스의 모음이다. (로깅 Facade)
인터페이스를 사용하여 로깅을 구현하게 되면 좋은 점은 추후에 필요로 의해 로깅 라이브러리를 변경할 때 코드의 변경 없이 가능하다는 점이다.
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 (적은 로깅) 순이다.
반응형