<?xml version='1.0' encoding='UTF-8' ?>
<configuration status="info" name="defaultLogConfig">
<properties>
<property name="LOG_HOME">d:/logs</property>
<property name="PATTERN_LAYOUT">%d [%7r] %6p - %30.30c - %m \n</property>
</properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="${PATTERN_LAYOUT}" charset="GBK"/>
</Console>
<!--warn及以下日志-->
<RollingFile name="INFO" fileName="${LOG_HOME}/info.log" filePattern="${LOG_HOME}/info-%d{yyyyMMdd}-%i.log.gz">
<PatternLayout pattern="${PATTERN_LAYOUT}"/>
<Filters>
<!--如果是error级别拒绝-->
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
<!--如果是debug\info\warn输出-->
<ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<Policies>
<TimeBasedTriggeringPolicy />
<!--单个文件大小-->
<SizeBasedTriggeringPolicy size="500MB"/>
</Policies>
<!--保存日志文件个数-->
<DefaultRolloverStrategy max="10"/>
</RollingFile>
<!--error级别日志输出-->
<RollingFile name="ERROR" fileName="${LOG_HOME}/error.log" filePattern="${LOG_HOME}/error-%d{yyyyMMdd}-%i.log.gz">
<PatternLayout pattern="${PATTERN_LAYOUT}"/>
<Filters>
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="500MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<AsyncLogger name="org.springframework.beans" level="error">
<AppenderRef ref="Console" />
<AppenderRef ref="INFO" />
<AppenderRef ref="ERROR" />
</AsyncLogger>
<AsyncLogger name="org.springframework.core" level="error">
<AppenderRef ref="Console" />
<AppenderRef ref="INFO" />
<AppenderRef ref="ERROR" />
</AsyncLogger>
<AsyncLogger name="org.springframework.context" level="error">
<AppenderRef ref="Console" />
<AppenderRef ref="INFO" />
<AppenderRef ref="ERROR" />
</AsyncLogger>
<AsyncLogger name="org.springframework.web" level="error">
<AppenderRef ref="Console" />
<AppenderRef ref="INFO" />
<AppenderRef ref="ERROR" />
</AsyncLogger>
<AsyncLogger name="com.mybatis" level="error">
<AppenderRef ref="Console" />
<AppenderRef ref="INFO" />
<AppenderRef ref="ERROR" />
</AsyncLogger>
<Root level="${log4j.level}">
<AppenderRef ref="Console" />
<AppenderRef ref="INFO" />
<AppenderRef ref="ERROR" />
</Root>
</Loggers>
</configuration>