Kim-Baek 개발자 이야기

logback 설정 본문

개발/Spring

logback 설정

김백개발자 2020. 8. 4. 17:05

Spring 앱을 만들다보면 로그를 저장하고 확인해야 할 일이 많다.

앱을 띄우고, 하나의 파일에 로그를 쌓다보면 무한정 커지게 되고, 나중에는 로그 파일을 여는 것 조차 오래걸리는 문제가 발생한다. 또, 앱을 재시작하면, 동일 파일에 로그가 남기 때문에, 이전 로그가 날아가는 문제 또한 생긴다.

이를 해결하기 위해 Spring 에서 logback 설정을 하여, daily 로 rolling 로그를 남길 수 있다.

src/java/resources 폴더 아래에 logback.xml 파일을 만든다.

파일의 예시로는

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
	<include resource="org/springframework/boot/logging/logback/base.xml"/>
 
	<appender name="dailyRollingFileAppender"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<prudent>true</prudent>
		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
			<fileNamePattern>/home/marble_admin/container-deploy/logs/application.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<maxHistory>30</maxHistory>
			<maxFileSize>50MB</maxFileSize>
    		<totalSizeCap>1GB</totalSizeCap>
		</rollingPolicy>
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>INFO</level>
		</filter>
 
		<encoder>
			<pattern>%d{yyyy:MM:dd HH:mm:ss.SSS} %-5level --- [%thread] %logger{35} : %msg %n</pattern>
		</encoder>
	</appender>
 
	<logger name="org.springframework.web" level="INFO"/>
	<logger name="org.thymeleaf" level="INFO"/>
	<logger name="org.hibernate.SQL" level="INFO"/>
	<logger name="org.quartz.core" level="INFO"/>
	<logger name="org.h2.server.web" level="INFO"/>
 
	<root level="INFO">
		<appender-ref ref="dailyRollingFileAppender" />
	</root>
</configuration>

 

반응형
Comments