Dev.끄적끈적

[Java] @Slf4j Annotation 이 뭐길래 ? 본문

카테고리 없음

[Java] @Slf4j Annotation 이 뭐길래 ?

YeouidoSexyDeveloper 2022. 4. 26. 17:05

개발을 하거나 운영을 하는 상황에서 LOGGING 은 아주 중요하다.. 

Spring boot에서는 로그를 남기는 방법이 많이 있는데,

내가 개발 초기에 항상 썼던 로그는 역시나 System.out.println().. 하지만 이 sout는 기능성면에서 현저히 떨어진다.

그렇다면 로깅 중 가장 편하게 사용되는 @Slf4j 어노테이션을 알아보자.

 

@Slf4j

 @ Slf4j 란?

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

장점은 추후에 필요로 의해 로깅 라이브러리를 변경할 때 코드의 변경 없이 가능하다는 점이다.

 

lombok 라이브러리를 추가해주면 사용 가능하다.! (플러그인이나 Gradle에 추가)

 

사용 방법

@Slf4j
@Controller
@RequiredArgsConstructor
@RequestMapping("/main")
public class MainController {

    private final MainService mainService;

    @GetMapping("/category/{catName}")
    public ResponseEntity<List<MainCategoryResDto>> getCategoryMain(@PathVariable String catName){
        log.info("controller catName: {}", catName);
        return mainService.getCategoryMain(catName);
    }
}

로깅이 필요한 부분에 log.info(" 로깅에 찍히는 내 문자들 내용: {}", 확인할 로그 내용); 형식으로 사용하면 된다.

 

그 외에,

log.trace

log.warn

log.info

log.debug

log.error 등이 있는데 순서대로 로깅 레벨이 많은 순이다. (trace > error)

 

즉, log.trace 를 쓰면 가장 디테일한 로그를 볼 수 있다. 

 

감사합니다.