logback-spring.xml 配置
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<property resource="bootstrap.yml"/>
<springProperty scope="context" name="log.home" source="log.home" defaultValue="logs"/>
<springProperty scope="context" name="logging.level.root" source="logging.level.root" defaultValue="INFO"/>
<!-- 使用spring boot默认控制台日志格式 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<!-- app log -->
<appender name="JM_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.home}/jumi.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.home}/jumi.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} - [%thread] %-5level - %logger{35} - %msg%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<!-- info log -->
<appender name="JM_INFO_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.home}/info-jumi.log</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.home}/info-jumi.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>15</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} - [%thread] %-5level - %logger{35} - %msg%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<!-- error log -->
<appender name="JM_ERROR_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.home}/error-jumi.log</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.home}/error-jumi.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} - [%thread] %-5level - %logger{35} - %msg%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<!-- debug log -->
<appender name="JM_DEBUG_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.home}/debug-jumi.log</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.home}/debug-jumi.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} - [%thread] %-5level - %logger{35} - %msg%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<root>
<level value="${logging.level.root}"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="JM_APPENDER"/>
<appender-ref ref="JM_INFO_APPENDER"/>
<appender-ref ref="JM_DEBUG_APPENDER"/>
<appender-ref ref="JM_ERROR_APPENDER"/>
</root>
</configuration>