Logback xml 생성
/resourese/logback-spring.xml 생성
<configuration>
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 로그 경로 -->
<file>logs/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 백업 파일 이름: logs/app.log.2025-06-10.0.gz -->
<fileNamePattern>logs/app.log.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
<!-- 1MB 넘으면 분할 백업 (테스트) -->
<maxFileSize>1MB</maxFileSize>
<!-- 최대 7일치 백업 보관 -->
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="ROLLING"/>
</root>
</configuration>
Test 로그 생성
package com.log.logback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class LogRollingTester implements CommandLineRunner {
private static final Logger logger = LoggerFactory.getLogger(LogRollingTester.class);
@Override
public void run(String... args) {
for (int i = 0; i < 100_000; i++) {
logger.info("테스트 로그 - 롤링 동작 확인 중: Line {}", i);
}
}
}
결과
- logs 디렉토리에 app.log, app.log.2025-06-10.?.gz 파일들을 확인
- 디스크는 무제한이 아니므로 백업을 고려해야 한다.