ERROR : 일반 에러가 일어 났을 때 사용한다.
WARN : 에러는 아니지만 주의할 필요가 있을 때 사용한다.
INFO : 일반 정보를 나타낼 때 사용한다.
DEBUG : 일반 정보를 상세히 나타낼 때 사용한다.
TRACE : 경로추적을 위해 사용한다.
resources/ 하위에logback.xml또는 logback-spring.xml (spring-boot의 경우는 후자로 설정)
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<!-- INCLUDE -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<!-- 변수 지정 -->
<property name="LOG_DIR" value="./logs"/>
<property name="LOG_FILE" value="${LOG_DIR}/logback.log"/>
<property name="LOG_FILE_PROD" value="${LOG_DIR}/logback-prod.log"/>
<!-- SpringProfile :: Development -->
<springProfile name="dev">
<!-- Appender -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>%d{HH:mm} %-5level %logger{36} - %msg%n</Pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE}</file>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>10</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
</appender>
<!-- Logger -->
<logger name="org.springframework" level="info"/>
<logger name="org.mybatis.spring.boot" level="debug"/>
<!-- Root Logger -->
<root level="debug">
<appender-ref ref="FILE"/>
<appender-ref ref="STDOUT"/>
</root>
</springProfile>
<!-- SpringProfile :: Production -->
<springProfile name="prod">
<!-- Appender -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE_PROD}</file>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
</appender>
<!-- Logger -->
<logger name="org.springframework"/>
<level value="error"/>
</logger>
<!-- Root Logger -->
<root level="info">
<appender-ref ref="FILE"/>
</root>
</springProfile>
</configuration>
- 프로필은 VM Option에서 변경할 수 있다.
-Dspring.profiles.active=dev
-Dspring.profiles.active=prod