totalSizeCap 속성은 maxHistory 속성에 종속되어 있다.

  • totalSizeCap 속성은 maxHistory 속성 설정 시에만 동작한다.

정상 (totalSizeCap 기능 동작 O)

<appender name="TEST-html"
	class="ch.qos.logback.core.rolling.RollingFileAppender">
	<file>${LOG_PATH}${TEST_LOG_HTML}</file>
	<rollingPolicy
		class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
		<fileNamePattern>${LOG_PATH}${TEST_ARCHIVE_LOG_HTML}</fileNamePattern>
		<!-- each archived file, size max 10MB -->
		<maxFileSize>10MB</maxFileSize>
		<!-- (아카이브 삭제 조건 1 : maxHistory) -->
		<!-- 60 days to keep -->
		<maxHistory>60</maxHistory>
		<!-- (아카이브 삭제 조건 2 : totalSizeCap, maxHistory 속성 설정 시에만 동작한다.) -->
		<!-- total size of all archive files, if total size > 20GB, it will delete
			old archived file -->
		<totalSizeCap>20GB</totalSizeCap>
		<!-- Application 기동 시 기존 아카이브 파일 삭제 -->
		<cleanHistoryOnStart>true</cleanHistoryOnStart>
	</rollingPolicy>

	<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
		<layout class="ch.qos.logback.classic.html.HTMLLayout">
			<pattern>%relative%thread%mdc%level%logger%msg</pattern>
		</layout>
	</encoder>
</appender>

비정상 (totalSizeCap 기능 동작 X)

<appender name="TEST-html"
	class="ch.qos.logback.core.rolling.RollingFileAppender">
	<file>${LOG_PATH}${TEST_LOG_HTML}</file>
	<rollingPolicy
		class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
		<fileNamePattern>${LOG_PATH}${TEST_ARCHIVE_LOG_HTML}</fileNamePattern>
		<!-- each archived file, size max 10MB -->
		<maxFileSize>10MB</maxFileSize>
		<!-- (아카이브 삭제 조건 1 : maxHistory) -->
		<!-- 60 days to keep -->
		<!-- <maxHistory>60</maxHistory> -->
		<!-- (아카이브 삭제 조건 2 : totalSizeCap, maxHistory 속성 설정 시에만 동작한다.) -->
		<!-- total size of all archive files, if total size > 20GB, it will delete
			old archived file -->
		<totalSizeCap>20GB</totalSizeCap>
		<!-- Application 기동 시 기존 아카이브 파일 삭제 -->
		<cleanHistoryOnStart>true</cleanHistoryOnStart>
	</rollingPolicy>

	<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
		<layout class="ch.qos.logback.classic.html.HTMLLayout">
			<pattern>%relative%thread%mdc%level%logger%msg</pattern>
		</layout>
	</encoder>
</appender>

속성 명세표

옵션명 입력 포맷 비고
maxFileSize KB, MB, GB
ex) 10MB
개별 로그파일 최대 용량
maxHistory 1, ..., n
ex) 7
아카이브(백업) 전체 허용 개수
 - fileNamePattern 설정값에 따라 rollover 주기가 결정됨.
ex1) %d{yyyy-MM-dd}
 - 직전 7일까지 저장 허용
ex2) %d{yyyy-MM-dd_HH-mm}
 - 직전 7분까지 저장 허용
totalSizeCap KB, MB, GB
ex) 20GB
아카이브(백업) 전체 용량, maxHistory 속성 설정 시에만 동작한다.
cleanHistoryOnStart true, false (default : false)
ex) true
Application 시작 시 아카이브(백업)된 로그 파일 삭제

 

참조

 

Logback - 4. Appenders (2). RollingFileAppender

logback 홈페이지의 매뉴얼을 읽으며 내용들을 정리한 글입니다. RollingFileAppender RollingFileAppender는 FileAppender를 상속하여 로그 파일을 rollover 합니다. 여기서 rollover는 타깃 파일을 바꾸는 것..

ckddn9496.tistory.com

 

Posted by 달바래기
,