lombok을 디펜던시에 추가했습니다.
compileOnly('org.projectlombok:lombok')
lombok에서 사용하는 log를 그대로 사용합니다.
logging:
file:
name: /home/xxx/log/xxxx/
level:
com:
xxx:
xxxx: INFO
특정 경로의 폴더 명을 정의합니다.
logging.file.name 의 경우, 예전에 만들어졌던 logging.file 과 동일합니다.
resources 에 logback-spring.xml 에 file.xml 과 console.xml 로 추가합니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="log/console.xml" />
<include resource="log/file.xml" />
<root level="info">
<springProfile name="local">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="dailyRollingFileAppender"/>
</springProfile>
<springProfile name="prod">
<appender-ref ref="dailyRollingFileAppender"/>
</springProfile>
</root>
</configuration>
console.xml
<?xml version="1.0" encoding="UTF-8"?>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset>UTF-8</charset>
<pattern>[%-5p][%d{yyyy/MM/dd HH:mm:ss}] %C{1} [%L] %m %n</pattern>
</encoder>
</appender>
file.xml
<?xml version="1.0" encoding="UTF-8"?>
<appender name="dailyRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE}xxxx.log</file>
<encoder>
<charset>UTF-8</charset>
<pattern>[%-5p][%d{yyyy/MM/dd HH:mm:ss}] %C{1} [%L] %m %n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}xxxx.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
제가 좋아하는 패턴입니다.
패턴레이어를 보시고 본인이 원하는 패턴을 추가하시면됩니다.
패턴레이어주소
maxHistory를 30일로 설정해서 30일이 지난 로그들은 삭제됩니다.
maxFileSize를 100MB로 설정해서 로그 파일 용량이 100MB를 초과하면 자동으로 인덱스가 증가하면서 새로운 로그 파일이 생성됩니다. (시작은 0) 로 하고 %i 로 처리합니다.
2020/10/13 추가 내용 ${LOG_FILE} 말고 application.yml 에서 값을 받아오고 싶을 경우 configuration 안에,
<springProperty scope="context" name="LOAD_BALANCING" source="server.port"/>
springProperty 값을 추가하여, 처리하시면 됩니다.