<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration scan="true">
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<!-- The FILE and ASYNC appenders are here as examples for a production configuration -->
<property name="PROJECT" value="pam" />
<property name="ROOT" value="logs/" />
<property name="FILESIZE" value="200MB" />
<property name="MAXHISTORY" value="365" />
<timestamp key="DATETIME" datePattern="yyyy-MM-dd HH:mm:ss" />
<!-- 输出所有日志到文件 -->
<appender name="OUTPUT_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder charset="utf-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%-40.40logger{39}] : %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${ROOT}%d/${PROJECT}.%i.log</fileNamePattern>
<maxHistory>${MAXHISTORY}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${FILESIZE}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!--往已存在的日志文件后追加写入-->
<append>true</append>
</appender>
<!-- 输出错误日志到文件 -->
<appender name="OUTPUT_ERROR_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder charset="utf-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%-40.40logger{39}] : %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${ROOT}%d/${PROJECT}.error.%i.log</fileNamePattern>
<maxHistory>${MAXHISTORY}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${FILESIZE}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!--往已存在的日志文件后追加写入-->
<append>true</append>
</appender>
<root>
<appender-ref ref="OUTPUT_LOG"/>
<appender-ref ref="OUTPUT_ERROR_LOG"/>
</root>
<!--开启sql打印-->
<logger name="com.xinran.canteen.mapper" level="DEBUG"/>
<shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
</configuration>
将项目日志持久化到文件中,文件时按照日期自动创建。