<?xml version="1.0" encoding="UTF-8"?>
<!--设置log4j2的自身log级别为warn-->
<configuration status="warn">
<properties>
<property name="LOG_HOME">/home/app-logs/xxxx</property>
<!-- 日志备份目录 -->
<property name="BACKUP_HOME">backup</property>
<property name="SERVER_NAME">cp-web</property>
<property name="EVERY_FILE_SIZE">50M</property><!-- 日志切割的最小单位 -->
<property name="OUTPUT_LOG_LEVEL">DEBUG</property><!-- 日志输出级别 -->
<property name="KEEP_LOG_DAY">3D</property> <!-- 保留日志天数 D H M S 分别对应天 小时 分钟 秒 -->
</properties>
<appenders>
<console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
</console>
<RollingFile name="RollingFileALL" fileName="${LOG_HOME}/all.log"
filePattern="${LOG_HOME}/all/all-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="DEBUG"/>
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="ACCEPT"/>
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="ACCEPT"/>
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="ACCEPT"/>
</Filters>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"><!-- 每次滚动保留的文件数,目前配置按天滚动,那么同一天内最大日志数为20 -->
<Delete basePath="${LOG_HOME}/all/" maxDepth="2">
<IfFileName glob="*/*.log"/>
<IfLastModified age="${KEEP_LOG_DAY}"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/info.log"
filePattern="${LOG_HOME}/info/info-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="INFO"/>
<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"><!-- 每次滚动保留的文件数,目前配置按天滚动,那么同一天内最大日志数为20 -->
<Delete basePath="${LOG_HOME}/info" maxDepth="2">
<IfFileName glob="*/*.log"/>
<IfLastModified age="${KEEP_LOG_DAY}"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<RollingFile name="RollingFileWarn" fileName="${LOG_HOME}/warn.log"
filePattern="${LOG_HOME}/warn/warn-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="WARN"/>
<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"><!-- 每次滚动保留的文件数,目前配置按天滚动,那么同一天内最大日志数为20 -->
<Delete basePath="${LOG_HOME}/warn" maxDepth="2">
<IfFileName glob="*/*.log"/>
<IfLastModified age="${KEEP_LOG_DAY}"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<RollingFile name="RollingFileError" fileName="${LOG_HOME}/error.log"
filePattern="${LOG_HOME}/error/error-%d{yyyy-MM-dd}-%i.log">
<ThresholdFilter level="ERROR"/>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"><!-- 每次滚动保留的文件数,目前配置按天滚动,那么同一天内最大日志数为20 -->
<Delete basePath="${LOG_HOME}/error" maxDepth="2">
<IfFileName glob="*/*.log"/>
<IfLastModified age="${KEEP_LOG_DAY}"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<RollingFile name="RollingFileCrowd" fileName="${LOG_HOME}/business/business.log"
filePattern="${LOG_HOME}/business/business-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="DEBUG"/>
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="ACCEPT"/>
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="ACCEPT"/>
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="ACCEPT"/>
</Filters>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"><!-- 每次滚动保留的文件数,目前配置按天滚动,那么同一天内最大日志数为20 -->
<Delete basePath="${LOG_HOME}/business" maxDepth="2">
<IfFileName glob="*/*.log"/>
<IfLastModified age="${KEEP_LOG_DAY}"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<RollingFile name="RequestLogFile" fileName="${LOG_HOME}/request/request.log"
filePattern="${LOG_HOME}/request/$${date:yyyy-MM}/request-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="DEBUG"/>
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="ACCEPT"/>
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="ACCEPT"/>
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="ACCEPT"/>
</Filters>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %M - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"><!-- 每次滚动保留的文件数,目前配置按天滚动,那么同一天内最大日志数为20 -->
<Delete basePath="${LOG_HOME}/request" maxDepth="2">
<IfFileName glob="*/*.log"/>
<IfLastModified age="${KEEP_LOG_DAY}"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</appenders>
<loggers>
<!--过滤掉spring和hibernate的一些无用的debug信息-->
<Logger name="org.elasticsearch.transport.netty4" level="INFO" />
<Logger name="businessLog">
<appender-ref ref="RollingFileCrowd"/>
</Logger>
<Logger name="request">
<appender-ref ref="RequestLogFile"/>
</Logger>
<ROOT level="debug">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileALL"/>
<appender-ref ref="RollingFileInfo"/>
<appender-ref ref="RollingFileWarn"/>
<appender-ref ref="RollingFileError"/>
<!-- <appender-ref ref="RollingFileCrowd"/> -->
</ROOT>
</loggers>
</configuration>