Spring Boot Logback 설정 완전 정리: 로그 포맷, 파일 분리, Rolling 설정까지
Spring Boot에서 로그를 제대로 설정해두면, 운영 중 발생하는 문제를 추적하고 디버깅하는 데 큰 도움이 됩니다.
기본적으로 Spring Boot는 Logback을 로깅 백엔드로 사용하며, 별도 설정 없이도 로그가 출력됩니다.
하지만 실무에서는 로그 포맷을 지정하거나 파일 저장, 용량 제한, 날짜별 분할(Rolling)이 필요합니다.
이 글에서는 logback-spring.xml을 기반으로 로그 설정을 실무 스타일로 정리합니다.
1. 기본 로그 위치 및 형식 확인
Spring Boot는 기본적으로 콘솔에 로그를 출력하며, logback-classic이 자동 포함되어 있습니다.
별도 설정이 없을 경우 로그 파일은 생성되지 않습니다.
2. 로그 설정 파일 위치
src/main/resources 경로에 logback-spring.xml 파일을 생성합니다.
이 이름을 사용하면 Spring 프로파일 연동이 가능합니다.
3. 기본 로그 설정 예제
<configuration scan="true">
<property name="LOG_PATH" value="logs"/>
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</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>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
4. 설정 설명
CONSOLE: 콘솔 로그 출력용RollingFileAppender: 날짜별 로그 파일 생성TimeBasedRollingPolicy: 하루 단위로 로그 파일 분할maxHistory: 최대 보관 일수
5. profile 별 로그 레벨 다르게 설정
<springProfile name="dev">
<root level="DEBUG">
<appender-ref ref="CONSOLE"/>
</root>
</springProfile>
<springProfile name="prod">
<root level="INFO">
<appender-ref ref="FILE"/>
</root>
</springProfile>
- 개발 환경에서는 DEBUG 로그까지 출력
- 운영 환경에서는 FILE에만 기록하고 콘솔 로그 생략 가능
6. logback vs log4j vs slf4j 차이 간단 정리
- SLF4J: 로깅 추상화 API (인터페이스)
- Logback: SLF4J 구현체 (Spring Boot 기본)
- Log4j: 예전부터 쓰이던 구현체 (보안 이슈로 잘 안 씀)
7. application.yml 로그 레벨 조정
logging:
level:
root: INFO
com.example: DEBUG
- 특정 패키지만 DEBUG로 지정하여 쿼리 로그 등 확인 시 유용
- 이 설정은 logback-spring.xml과 병행 사용 가능
8. 실전 팁
- 파일 로그 경로는
logs/또는/var/log/app식으로 분리 - 개발 환경에선
console + file둘 다 쓰고, 운영에서는 file만 쓰는 게 일반적 - 운영 로그 분석을 위해 ELK(Stack) 또는 CloudWatch와 연계 가능
- 에러 발생 시
%ex패턴으로 예외 메시지 출력 필수
맺음말
Spring Boot에서 로그 설정은 프로젝트의 규모가 커질수록 필수적인 요소가 됩니다.
logback-spring.xml을 잘 구성해두면, 운영 중 발생하는 문제를 훨씬 빠르게 진단할 수 있고,
DevOps 팀이나 로그 수집 시스템과의 연동도 간편해집니다.
이번 설정 예제를 바탕으로 프로젝트에 맞는 로그 전략을 직접 구성해보시기 바랍니다.
'웹개발 > Spring' 카테고리의 다른 글
| Spring Boot 404 Not Found 에러 발생 원인과 해결 방법 총정리 (0) | 2025.08.15 |
|---|---|
| Spring Boot에서 JPA와 Querydsl 함께 사용하는 방법 (설정부터 실전 예제까지) (4) | 2025.08.14 |
| Spring Boot에서 Multipart 파일 업로드 설정과 실전 예제 (JSP & REST 방식 모두) (2) | 2025.08.12 |
| Spring Boot에서 CORS 정책 오류 해결하기: 프론트 연동 시 필수 설정 가이드 (3) | 2025.08.11 |
| Spring Security에서 커스텀 로그인 필터 구현하기 (JWT 인증 연동 실전 예제) (0) | 2025.08.10 |