티스토리 뷰
logback.qos.ch/manual/appenders.html
날짜별로 파일을 보관하고, 동시에 각 로그 파일의 크기를 제한할 수 있다.
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>50MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>7</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
- maxFileSize - 분할 용량 (KB, MB, GB)
- maxHistory - 보관할 최대 파일 수를 제어하여 이전 파일을 삭제한다. 롤오버 지정에 따라 maxHistory 기간이 정해진다.
예) 롤오버를 월간으로 지정하고 maxHistory를 7로 하면 7개월 단위
예) 롤오버를 일간으로 지정하고 maxHistory를 7로 하면 7일 단위 - totalSizeCap - 전체 파일 크기를 제어하며, 전체 크기 제한을 초과하면 가장 오래된 파일을 삭제한다. totalSizeCap을 사용하기 위해서는 maxHistory가 필수 속성이다. maxHistory와 totalSizeCap의 우선순위는 maxHistory가 우선된다.
logback-local.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE configuration>
<configuration scan="true" scanPeriod="30 seconds">
<!-- log file path -->
<property name="LOG_PATH" value="/svc/reference/logs"/>
<!-- log file name -->
<property name="LOG_FILE_NAME" value="reference-service"/>
<!-- log pattern -->
<property name="LOG_PATTERN" value="%d{[yyyy.MM.dd HH:mm:ss]} [%-35.35c{1}:%line] %-5p %m%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>${LOG_PATTERN}</Pattern>
</layout>
</appender>
<logger name="org.springframework" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<logger name="jdbc" level="OFF"/>
<logger name="jdbc.audit" level="OFF"/>
<logger name="jdbc.connection" level="OFF"/>
<logger name="jdbc.sqlonly" level="OFF"/>
<logger name="jdbc.sqltiming" level="DEBUG"/>
<logger name="jdbc.resultset" level="OFF"/>
<logger name="jdbc.resultsettable" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
logback-dev.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE configuration>
<configuration scan="true" scanPeriod="30 seconds">
<!-- log file path -->
<property name="LOG_PATH" value="/svc/reference/logs"/>
<!-- log file name -->
<property name="LOG_FILE_NAME" value="reference-service"/>
<!-- log pattern -->
<property name="LOG_PATTERN" value="%d{[yyyy.MM.dd HH:mm:ss]} [%-35.35c{1}:%line] %-5p %m%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>${LOG_PATTERN}</Pattern>
</layout>
</appender>
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>50MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>7</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
</appender>
<appender name="ROLLING_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/error/${LOG_FILE_NAME}_error.log</file>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/error/${LOG_FILE_NAME}_error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>50MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<logger name="org.springframework" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="ROLLING" />
<!-- <appender-ref ref="ROLLING_ERROR" /> -->
</logger>
<logger name="jdbc" level="OFF"/>
<logger name="jdbc.audit" level="OFF"/>
<logger name="jdbc.connection" level="OFF"/>
<logger name="jdbc.sqlonly" level="OFF"/>
<logger name="jdbc.sqltiming" level="DEBUG"/>
<logger name="jdbc.resultset" level="OFF"/>
<logger name="jdbc.resultsettable" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="ROLLING" />
<!-- <appender-ref ref="ROLLING_ERROR" /> -->
</logger>
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="ROLLING" />
<!-- <appender-ref ref="ROLLING_ERROR" /> -->
</root>
</configuration>
'프로그래밍 > Back end' 카테고리의 다른 글
[Back end] ResponseObject Builder (0) | 2021.02.17 |
---|---|
[Back end] Java try-with-resources (0) | 2021.02.08 |
[Back end] HikariCP 설정 (0) | 2021.01.29 |
[Back end] Maven Failed to transfer file: http://repo.maven.apache.org/maven2/<some/dependency/artifact>.pom Return code is: 501 , ReasonPhrase:HTTPS Required. (0) | 2020.12.30 |
[Back end] Spring Boot jar에서 war로 변경 (0) | 2020.12.30 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- sort algorithm
- 정렬 알고리즘
- 소프트웨어공학
- effective java
- 리눅스 명령어
- 이직
- Eclipse
- 오라클 내장 함수
- 제주도 3박4일 일정
- Java
- 성능분석
- 개발환경
- 제주도 여행
- SQL
- 회고
- Collection
- 오라클
- 리액트 16
- 자바
- 자바스크립트
- 리액트
- Linux 명령어
- spring
- 경력관리
- javascript
- React
- Tomcat
- 프로그래머스
- 프로그래머
- Maven
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함