<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="15 seconds"> <property name="LOG_PATH" value="/data/logs"/> <property name="LOG_FILE" value="app"/> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{500}:%line - %msg%n</pattern> </encoder> </appender> <!-- info日志记录器,日期滚动记录 --> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%line - %msg%n</pattern> </encoder> <append>true</append> <file>${LOG_PATH}/${LOG_FILE}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/${LOG_FILE}_%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <maxFileSize>128MB</maxFileSize> <totalSizeCap>2GB</totalSizeCap> <!--日志文件保留天数 --> <MaxHistory>14</MaxHistory> </rollingPolicy> </appender> <!-- ERROR日志记录器,日期滚动记录 --> <appender name="errorFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%line - %msg%n</pattern> </encoder> <append>true</append> <file>${LOG_PATH}/error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/error_%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <maxFileSize>128MB</maxFileSize> <totalSizeCap>1GB</totalSizeCap> <MaxHistory>14</MaxHistory> </rollingPolicy> <!-- 此日志文件只记录ERROR级别的 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>error</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <root level="info"> <appender-ref ref="console"/> <appender-ref ref="file"/> <appender-ref ref="errorFile"/> </root> </configuration>