<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!-- status用来指定log4j本身的打印日志的级别 -->
<!--monitorInterval:Log4j能够自动检测修改配置文件和重新配置本身,设置间隔秒数 -->
<configuration status="WARN" monitorInterval="30">
<!--先定义所有的appender -->
<appenders>
<!--这个输出控制台的配置 -->
<console name="Console" target="SYSTEM_OUT">
<!--输出日志的格式 -->
<PatternLayout
pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %logger{36} - %msg%n" />
</console>
<!--定义输出到指定位置的文件 -->
<File name="log" fileName="/jpm/log4j2/logs/log.log" append="true">
<PatternLayout
pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %logger{36} - %msg%n" />
</File>
<!-- 这个会打印出所有的info及
以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面,后缀以.zip或.gz则并进行压缩,作为存档 -->
<RollingFile name="RollingFileInfo" fileName="/jpm/log4j2/logs/info.log"
filePattern="/jpm/log4j2/logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
<!--onMatch="ACCEPT" 表示匹配该级别及以上
onMatch="DENY" 表示不匹配该级别及以上
onMatch="NEUTRAL" 表示该级别及以上的,由下一个filter处理,如果当前是最后一 个,则表示匹配该级别及以上
onMismatch="ACCEPT" 表示匹配该级别以下
onMismatch="NEUTRAL" 表示该级别及以下的,由下一个filter处理,如果当前是最后一个,则不匹配该级别以下的
onMismatch="DENY" 表示不匹配该级别以下的 -->
<ThresholdFilter level="error" onMatch="DENY"
onMismatch="ACCEPT" />
<PatternLayout
pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %logger{36} - %msg%n" />
<Policies>
<!--TimeBasedTriggeringPolicy 按时间滚动日志,interval根据RollingFile的filePatthern计算 比如filePatthern为%d{yyyy-MM-dd} 则interval为1就是一天一滚动-->
<TimeBasedTriggeringPolicy interval="1" modulate ="true"/>
<!--按大小滚动日志,大于100mb则生成新文件-->
<SizeBasedTriggeringPolicy size="100 MB" />
</Policies>
<!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了30 -->
<DefaultRolloverStrategy max="30" />
</RollingFile>
<RollingFile name="RollingFileError" fileName="/jpm/log4j2/logs/error.log"
filePattern="/jpm/log4j2/logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
<ThresholdFilter level="ERROR" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout
pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %logger{36} - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="100 MB" />
</Policies>
</RollingFile>
</appenders>
<!--只有定义了logger并引入的appender,appender才会生效 -->
<loggers>
<!--过滤掉spring和mybatis的一些无用的DEBUG信息,level只打印级别及其以上的日志 -->
<logger name="org.springframework" level="INFO"></logger>
<logger name="org.mybatis" level="INFO"></logger>
<root level="INFO">
<appender-ref ref="Console" />
<appender-ref ref="log" />
<appender-ref ref="RollingFileInfo" />
<appender-ref ref="RollingFileError" />
</root>
</loggers>
</configuration>