[SprinBoot] 스프링부트 기본 로거 설정

2022. 11. 6. 13:34JAVA/Spring

1. 로깅 퍼사드(Logging Facade)와 로거(Logger)

로깅 퍼사드와 로거의 개념

  • 로깅 퍼사드 : 로거 API들을 추상화 해놓은 인터페이스
    • 로깅 퍼사드를 사용하게 되면 로거들을 바꾸어 사용할 수 있습니다.
  • 로거 : 로깅 퍼사드를 구현한 구현체

 

로깅 퍼사드와 로거의 종류

  • 로깅 퍼사드 : Common Logging, SLF4J
  • 로거 : JUL, Log4J2, Logback

 

스프링부트가 사용하는 로깅 원리

  • 스프링부트는 기본적으로 Common Logging 로깅 퍼사드를 사용함
    • Common Logging을 사용하는 이유는 스프링 프레임워크 코어 모듈이 개발될 당시에 SLF4J가 아직 개발되지 않았기 때문입니다.
  • Spring5부터 SLF4J를 사용하기 위해서 Spring-JCL 모듈을 사용합니다. 그리고 컴파일 시점에 Common Logging을 SLF4J로 변경됩니다. SLF4J 로깅 퍼사드는 최종 로거(JUL, Log4J2, Logback 등)를 의존성에 근거하여 선택하게 됩니다.
    • 다른 설정이 없다면 기본적으로 Logback을 사용하게 됩니다.

 

2. 스프링 부트 로깅 설정

로그 컬러 출력

spring.output.ansi.enabled = always

 

로그를 파일에 출력

logging.file.name = spring.log

 

로그를 디렉터리에 출력

logging.file.path = logs

 

로그 레벨 설정

logging.level.root = info
logging.level.kr.yh = DEBUG
logging.level.org.springframework.web = DEBUG

 

References

source code : https://github.com/yonghwankim-dev/springboot_study/blob/main/springboot_utilization/src/main/resources/application.yml
[인프런] 스프링 부트 개념과 활용
스프링 부트 기본 로거 설정