Spring

[Spring] Logback 설정

테런 2025. 6. 10. 14:12
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 파일들을 확인
- 디스크는 무제한이 아니므로 백업을 고려해야 한다.