시간, 사이즈로 로그 파일 나누기
1.1.7
이전 버전:
예전에는 TimeBasedRollingPolicy
에 SizeAndTimeBasedFNATP
를 적용해서 maxFileSize
옵션을 적용했었다. 현재 이 방법은 공식 문서에서 삭제되었으나, 작동은 한다. %d
와 %i
는 필수로 지정해야 한다.
...
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>mylog.txt</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
...
현재:
SizeAndTimeBasedRollingPolicy
에 maxFileSize
옵션으로 각 파일당 사이즈를 지정하도록 수정되었다. SizeAndtimeBasedRollingPolicy.java를 보면 SizeAndTimeBasedFNATP
를 변수로 가지고 있다.
<configuration>
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>mylog.txt</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
<!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
<maxFileSize>100MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="ROLLING" />
</root>
</configuration>