<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--logback.xml读取config.properties中的logback.localPrint配置-->
<property resource="config.properties"/>
<!--格式化输出:%d表示日期,[%thread表示线程名],[%-5level:日志级别从左显示5个字符宽度],[%logger{50}:全限定类名的长度为50,%M方法名,%L行号],%msg:日志消息,%n换行-->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-5level] [%logger{50}#%M.%L] - %msg%n"/>
<!-- appender:指定日志输出目的地,可以是控制台,文件,远程服务器,mysql -->
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<!--过滤器,只会记录info级别以上的日志信息-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${logback.localPrint}/%d{yyyy-MM-dd}.%i.log.gz</FileNamePattern>
<!--日志文件大小(压缩前),最大保存数(以日期计数,不算日期后面的编号),总容量-->
<maxFileSize>200KB</maxFileSize>
<maxHistory>10</maxHistory>
<totalSizeCap>5MB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--ERROR日志文件单独打印-->
<appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${logback.localPrint}/error/%d{yyyy-MM-dd}-error.%i.log.gz</fileNamePattern>
<maxFileSize>200KB</maxFileSize>
<maxHistory>10</maxHistory>
<totalSizeCap>5MB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<!--过滤器,过滤所有的非ERROR日志-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<!--如果不是DEBUG日志,直接忽略-->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 输出DEBUG以上级别日志 -->
<root level="DEBUG">
<appender-ref ref="consoleAppender" />
<appender-ref ref="fileAppender" />
<appender-ref ref="errorAppender" />
</root>
</configuration>