카테고리 없음

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 (적은 로깅) 순이다.

 

 

반응형