이번 글에서는 Logback의 내용과 Spring Boot에서의 Logback 적용법 및 설정 방법에 대해서 알아보도록 하겠습니다.
아래의 글들을 참고하여 포스팅 된 글입니다.
LogBack?
logback은 log4j 기반의 logging framework입니다.
Spring에서 log를 남기기 위해서 slf4j를 흔하게 사용하곤 하는데, 이 slf4j는 로깅에 대한 추상 레이어를 제공하는 인터페이스 모음입니다.
따라서 slf4j만으로는 로그를 제대로 출력해낼 수 없고, 이를 구현하기 위한 native 구현체가 필요한데 이것이 바로 LogBack이라는 로깅 라이브러리입니다.
Spring Boot에서 slf4j와 LogBack 사용할 준비하기
Spring에 Log4j2, Logback, Slf4j가 준비되어있는지 확인하고, 만약 없다면 디펜던시에 추가하여줍니다.
그 다음으로는 LogBack을 사용하기 위한 설정을 넣어줄 xml을 작성해주어야 합니다.
xml은 logback.xml이나 logback-spirng.xml을 주로 사용하게 되는데,
logback.xml의 경우 Spring 구동 이전에 classpath 내의 logback.xml을 찾아 설정을 적용하고,
logback-sping.xml의 경우 Spring 구동 이후에 적용하는 것이기 때문에 application.properties 값들을 사용할 수 있다는 차이점이 있습니다.
저는 logback-spring.xml을 이용하여 설정하도록 하겠습니다.
main/resouces 폴더 안에 logback-spring.xml을 만들어 아래의 내용을 복붙해줍니다.
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
그 후, log를 찍고자 하는 class 위에 @Slf4j 어노테이션을 달아줍니다.
로그는 다음과 같이 남길 수 있습니다.
log.info("logging...");
확인해 보았을 때에 로그가 아래처럼 내가 정해준 대로 잘 찍힌다면 이제 로그를 사용할 수 있습니다.
현재 로그가 남겨진 것을 보면 가장 왼쪽부터 시간, 쓰레드, 로그 레벨, 로거 이름, 메시지 순서로 되어있는 것을 알 수 있습니다.
이는 logback-spring.xml을 수정하면 커스텀하게 바꿀 수 있고, 색깔 지정이나 추가적인 내용들을 출력하거나 로그를 파일로 남기는 등의 설정도 할 수 있습니다.
다음 글에서는 logback-spring.xml에서 이러한 설정을 하는 방법에 대해서 다뤄보겠습니다.
'Spring > etc' 카테고리의 다른 글
[Spring Boot] Spring Boot의 dependency (0) | 2023.03.19 |
---|---|
[Spring Boot] ORM과 JDBC, JPA (0) | 2021.04.11 |
[Spring Boot] 스프링 부트와 build.gradle (0) | 2021.03.21 |