상세 컨텐츠

본문 제목

SpringBoot logback 파일적재

Spring/DB 설정

by Chan.94 2021. 10. 27. 10:45

본문

반응형

이전 포스팅에 XML로 실행한 SQL을 console에 찍히도록 하였다. 

[Spring & Spring Boot/DB 설정] - SpringBoot logback / log4jdbc 설정

이번에는 console에 찍히는 log를 파일로 저장하는 것에 대해 정리해보겠다.

 


logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">

	<property name="log-file-path" value="/log/logs"/>
	<property name="log-file-name" value="DevLog"/>
    
	<!-- Appenders -->
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<Pattern>%d %5p [%c] %m%n</Pattern>
		</encoder>
	</appender>

	<appender name="console-infolog" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<Pattern>%d %5p %m%n</Pattern>
		</encoder>
	</appender>
		
	<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
    
		<file>${log-file-path}/${log-file-name}.log</file>
        
		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
			<fileNamePattern>${log-file-path}/${log-file-name}_%d{yyyy-MM-dd}_%i.log</fileNamePattern>
			<maxFileSize>100MB</maxFileSize>
			<maxHistory>7</maxHistory>
			<totalSizeCap>1GB</totalSizeCap>
		</rollingPolicy>
        
		<encoder>
			<charset>UTF-8</charset>
			<pattern>>%d %5p [%c] %m%n</pattern>
		</encoder>
	</appender>
	
	<!-- Logger -->
	<logger name="com.cm.lcm2" level="DEBUG" appender-ref="console" />
	<logger name="jdbc.sqltiming" level="INFO" appender-ref="console-infolog" />

	<!-- Root Logger -->
	<root level="off">
		<appender-ref ref="console" />
		<appender-ref ref="file"/>
	</root>
</configuration>
<!-- 로그 파일을 적재할 디렉토리 경로를 지정 -->
<property name="log-file-path" value="/log/logs"/>
<!-- 로그 파일을 적재할 파일 이름을 지정 -->
<property name="log-file-name" value="DevLog"/>

RollingFileAppender에서 사용할 파일경로와 파일명을 정의한다.

 

 

<!-- FILE appender 정의 -->
<!-- 일자별로 로그 파일을 적재하되, 100MB를 초과하면 로그 파일 분할 -->
<!-- 최대 7일치를 보관하고 나머지는 삭제, 최대 1GB를 초과해도 나머지를 삭제 -->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">

	<!-- 파일경로설정 -->
	<file>${log-file-path}/${log-file-name}.log</file>
    
	<!-- 정책설정 -->
	<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
		<fileNamePattern>${log-file-path}/${log-file-name}_%d{yyyy-MM-dd}_%i.log</fileNamePattern>
		<maxFileSize>100MB</maxFileSize>
		<maxHistory>7</maxHistory>
		<totalSizeCap>1GB</totalSizeCap>
	</rollingPolicy>
    
	<!-- 출력 패턴 설정 -->
	<encoder>
		<charset>UTF-8</charset>
		<pattern>>%d %5p [%c] %m%n</pattern>
	</encoder>
</appender>

RollingFileAppender

RollingFileAppender는 로그를 파일로 남기는며 Rolling 즉, 회전하면서 파일을 남긴다. 회전이란 특정조건에 다다르면 발생하며 파일사이즈와 정해진 파일 개수에 따라 달라진다. 이것을 RollingPolicy라 부른다.

위에 xml을 예로들어 설명하겠다. DevLog.log라는 파일에 로그를 적재하다가 해당 파일이 100MB를 넘어가게되면 

DevLog_2021_10_11_0.log 파일로 100MB가 적재가되고 DevLog.log에는 다시 처음부터 적재하게된다.

 

<file>
기록할 파일명과 경로를 설정한다.

<rollingPolicy>
ch.qos.logback.core.rolling.TimeBasedRollingPolicy - 일자별 적용
ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP - 일자별 + 크기별 적용

<fileNamePattern>
쓰기가 종료된 로그 파일명의 패턴을 지정한다.

<maxFileSize>
한 파일당 최대 파일 용량을 지정한다.
용량의 단위는 KB, MB, GB 3가지를 지정할 수 있다.

<maxHistory>
최대 파일 생성 갯수

 

반응형

'Spring > DB 설정' 카테고리의 다른 글

Mybatis Plugin - Interceptor  (0) 2022.10.24
SpringBoot logback / log4jdbc 설정  (4) 2021.10.19
Spring JPA란  (1) 2021.10.17
Spring AOP Transaction설정  (0) 2021.10.16
[DBCP] HikariCP  (8) 2021.10.12

관련글 더보기

댓글 영역

>