스프링 부트에서 로그 설정하는 법을 알아보자
처음 프로젝트를 생성할 때 아래와 같은 의존성을 build.gradle에 추가해 줄 텐데
implementation 'org.springframework.boot:spring-boot-starter-web'
spring-boot-starter-web 안에 spring-boot-starter-logging에 구현체가 있기 때문에 위의 의존성만 추가되었다면 별다른 의존성 추가 없이 바로 logback 사용이 가능하다.
@Controller
@RequiredArgsConstructor
public class IndexController {
private final Logger log = LoggerFactory.getLogger(IndexController.class);
@GetMapping("/join")
public String join(HttpServletRequest request) {
log.trace("trace : 회원가입 페이지로 이동");
log.debug("debug : 회원가입 페이지로 이동");
log.info("info : 회원가입 페이지로 이동");
log.warn("warn : 회원가입 페이지로 이동");
log.error("error : 회원가입 페이지로 이동");
return "join";
}
}
위의 소스 처럼
private final Logger log = LoggerFactory.getLogger(IndexController.class);
의존성 추가 한 뒤 바로 페이지 이동할때 총 5가지의 로그를 찍어보았다.
나는 총 5가지의 로그를 찍었지만, 실제 로그 결과로는 위의 이미지처럼 info, warn, error만 나오게 되었다.
그 이유는 로그레벨의 순서는 아래와 같은데
trace < debug < info < warn < error
info가 default이기 때문에 info, warn, error만 찍히는 것이다.
그러면 trace, dubug까지의 레벨을 보고 싶으면,
application.yaml에 아래와 같은 로그 설정을 추가해주면 된다.
logging:
level:
# default를 debug로 설정
root: debug
# 해당 패키지 내의 로그 레벨을 trace로 설정
com.jaeygun.board: trace
이렇게 설정을 주니 default로 debug를 설정해도 trace까지 로그가 찍히는 것을 확인할 수 있었다.