<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<configuration status="ALL" monitorInterval="30">
<properties>
<property name="LOG_HOME">${sys:catalina.home}/logs</property>
<property name="LOG_INFO_FILE_NAME">tpd-web-api-info</property>
<property name="LOG_ERROR_FILE_NAME">tpd-web-api-error</property>
<property name="LOG_WARN_FILE_NAME">tpd-web-api-warn</property>
</properties>
<appenders>
<console name="Console_Debug" target="SYSTEM_OUT">
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY" />
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %logger - %m%n" />
</console>
<console name="Console_Error" target="SYSTEM_OUT">
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %logger - %m%n" />
</console>
<!-- Level info -->
<RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/${LOG_INFO_FILE_NAME}.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM-dd}/${LOG_INFO_FILE_NAME}-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL" />
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %logger - %m%n" />
<Policies>
<TimeBasedTriggeringPolicy modulate="true" interval="1" />
<SizeBasedTriggeringPolicy size="5 MB" />
</Policies>
<DefaultRolloverStrategy max="30">
<Delete basePath="${LOG_HOME}/$${date:yyyy-MM-dd}/" maxDepth="2">
<IfFileName glob="${LOG_INFO_FILE_NAME}-*.log" />
<IfLastModified age="168H" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<!-- Level warn -->
<RollingFile name="RollingFileWarn" fileName="${LOG_HOME}/${LOG_WARN_FILE_NAME}.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM-dd}/${LOG_WARN_FILE_NAME}-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL" />
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %logger - %m%n" />
<Policies>
<TimeBasedTriggeringPolicy modulate="true" interval="1" />
<SizeBasedTriggeringPolicy size="5 MB" />
</Policies>
<DefaultRolloverStrategy max="30">
<Delete basePath="${LOG_HOME}/$${date:yyyy-MM-dd}/" maxDepth="2">
<IfFileName glob="${LOG_WARN_FILE_NAME}-*.log" />
<IfLastModified age="168H" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<!-- Level error -->
<RollingFile name="RollingFileError" fileName="${LOG_HOME}/${LOG_ERROR_FILE_NAME}.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM-dd}/${LOG_ERROR_FILE_NAME}-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %logger - %m%n" />
<Policies>
<TimeBasedTriggeringPolicy modulate="true" interval="1" />
<SizeBasedTriggeringPolicy size="5 MB" />
</Policies>
</RollingFile>
<DefaultRolloverStrategy max="30">
<Delete basePath="${LOG_HOME}/$${date:yyyy-MM-dd}/" maxDepth="2">
<IfFileName glob="${LOG_ERROR_FILE_NAME}-*.log" />
<IfLastModified age="168H" />
</Delete>
</DefaultRolloverStrategy>
</appenders>
<loggers>
<logger name="org.springframework" level="DEBUG" />
<logger name="org.mybatis" level="DEBUG" />
<logger name="com.zaxxer.hikari" level="DEBUG" />
<logger name="org.apache" level="DEBUG" />
<logger name="tk.mybatis" level="DEBUG" />
<root level="ALL">
<appender-ref ref="Console_Debug" />
<appender-ref ref="Console_Error" />
<appender-ref ref="RollingFileInfo" />
<appender-ref ref="RollingFileWarn" />
<appender-ref ref="RollingFileError" />
</root>
</loggers>
</configuration>