로그백을 통해 로그를 따로 저장하는 방법을 정리해보자!
스프링부트에서 로그백을 사용하기 위해서 다음 파일을 로드해서 사용합니다.
가능하면 로깅 설정에는 -spring 붙어 있는 파일을 사용하는 것을 권장합니다.
logback.xml 파일은 너무 빨리 로드되기 때문에, 이 파일 안에선 Extensions을 사용할 수 없습니다.
스프링에서 로그 초기화를 완전히 제어할 수 없습니다.
logback-spring.xml 예시
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>./var/log/application_log/application.log</file>
<encoder>
<pattern>%d{yyyyMMdd HH:mm:ss.SSS, ${logback.timezone:-Asia/Seoul}} [%thread] %-5level [%logger{0}:%line] - %msg %n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>./var/log/application_log/application.log.%d{yyyy-MM-dd, ${logback.timezone:-Asia/Seoul}}.gz</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="file" />
</root>
</configuration>
이렇게 작성하면 console 창에도 로그가 뜨면서 ./var/log/application_log/application.log 여기 경로로 새로운 로그 파일도 생기게 된다