文件名:log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration monitorInterval="5">
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--变量配置-->
<Properties>
<property name="LOG_PATTERN" value="[%date{yyyy/MM/dd HH:mm:ss.SSS}] [%thread:%c{1}:%L] %-5level - %msg%n"/>
<!--%c{1} 表示日志位置的类名,%L当前行号, %msg日志信息,%n换行-->
<property name="FILE_PATH" value="./logs"/>
<property name="FILE_NAME" value="fileName日志文件名"/>
</Properties>
<appenders>
<!--CONSOLE 打印-->
<console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${LOG_PATTERN}"/>
<!--控制是否在控制台输出-->
<!--<ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>-->
</console>
<!-- INFO 文件记录-->
<RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/${FILE_NAME}.log"
filePattern="${FILE_PATH}/${FILE_NAME}.log.%d{yyyy-MM-dd}">
<!--控制台只输出level=info及以上级别的信息(onMatch),onMatch="DENY"表示不在控制台输出,其他的直接拒绝(onMismatch)-->
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<!--interval属性用来指定多久滚动一次,默认是1d-->
<TimeBasedTriggeringPolicy interval="1"/>
</Policies>
</RollingFile>
<!-- ERROR-->
<RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log"
filePattern="${FILE_PATH}/error.log.%d{yyyy-MM-dd}">
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1"/>
</Policies>
</RollingFile>
</appenders>
<loggers>
<!--过滤掉spring的一些无用的DEBUG信息-->
<!--org.springframework这个类或包下所有日志的记录器进行了配置-->
<Logger name="org.springframework" level="info" additivity="false">
<AppenderRef ref="Console"/>
</Logger>
<root level="info">
<!--日志打印配置-->
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileInfo"/>
<appender-ref ref="RollingFileError"/>
</root>
</loggers>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="INFO">
<!-- 全局参数 -->
<Properties>
<Property name="pattern" value="[%date{yyyy/MM/dd HH:mm:ss.SSS}] [%thread] %-5level - %msg%n"/>
<!-- 改成各服务应用名称,变量 -->
<Property name="serviceName" value="serviceName"/>
<property name="errorName" value="error" />
<property name="path" value="./logs/" />
</Properties>
<Appenders>
<Console name="console" target="SYSTEM_OUT" follow="true">
<PatternLayout>
<!--引用了上面的日志输出格式pattern-->
<pattern>${pattern}</pattern>
</PatternLayout>
</Console>
<RollingFile name="errorFile" fileName="${path}/${errorName}.log" filePattern="${path}/${errorName}.log.%d{yyyy-MM-dd}">
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${pattern}" />
<Policies>
<!-- TimeBasedTriggeringPolicy需要和filePattern配套使用,由于filePattern配置的时间最小粒度是dd天,所以表示每一天新建一个文件保存日志。SizeBasedTriggeringPolicy表示当文件大小大于指定size时
,生成新的文件保存日志。 -->
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
</Policies>
</RollingFile>
<RollingFile name="infoFile" fileName="${path}/${serviceName}.log" filePattern="${path}/${serviceName}.log.%d{yyyy-MM-dd}">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${pattern}" />
<Policies>
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.springframework" level="INFO" />
<Root level="INFO">
<!--<AppenderRef ref="console"></AppenderRef>不在控制台打印-->
<AppenderRef ref="console"></AppenderRef>
<AppenderRef ref="infoFile"></AppenderRef>
<AppenderRef ref="errorFile"></AppenderRef>
</Root>
</Loggers>
</configuration>