Logback 설정과 활용
개요
로그는 애플리케이션의 동작 상태를 파악하고, 문제를 추적하며, 성능을 측정하는 데 중요한 도구입니다 Logback은 Spring Boot에서 기본으로 사용하는 로깅 프레임워크로, log4j보다 빠르고 유연한 구성을 지원합니다
따라서 Spring Boot에서 Logback을 설정하고 활용하는 방법에 대해 예제를 중심으로 설명하겠습니다
Logback이란?
Logback은 SLF4J(Simple Logging Facade for Java)와 함께 사용하는 고성능 로깅 프레임워크입니다
- Spring Boot의 기본 로깅 프레임워크
- XML 또는 Groovy 기반 설정 지원
- 다양한 Appender와 Filter 제공
Logback 설정 방법
기본 구조 (logback-spring.xml
)
<configuration>
<property name="LOG_PATH" value="logs"/>
<property name="LOG_LEVEL" value="INFO"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%d{HH:mm:ss.SSS}] [%thread] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/app.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss}] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<root level="${LOG_LEVEL}">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
application.yml
에서 설정 연동
logging:
config: classpath:logback-spring.xml
level:
com.example: DEBUG
로그 패턴 설명
| 패턴 | 설명 |
| ———- | ——————— |
| %d
| 날짜/시간 |
| %thread
| 스레드 이름 |
| %-5level
| 로그 레벨 (INFO, DEBUG 등) |
| %logger
| 로그를 출력한 클래스 이름 |
| %msg
| 로그 메시지 |
로그 출력 예시
[14:35:21.123] [main] INFO com.example.MyService - 사용자 로그인 처리 완료
[14:35:21.234] [main] ERROR com.example.MyService - 로그인 실패: 잘못된 비밀번호