文件名: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>