1. application.properties 配置logging.config=classpath:log4j2.xml,如果不配置默认读取的是resources下的log4j2.xml
2.配置依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
3.配置log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 第一全局参数信息 -->
<Properties>
<property name="LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p %c{1}:%L - %msg%n"/>
<!-- debug 日志文件位置及名称,在rollFile的时候老文件的生成规则 -->
<property name="DEBUG_FILE_PATH_ING"
value="../logs/app_debug.log"/>
<property name="DEBUG_FILE_PATH_ED"
value="../logs/app_debug-%d{yyyy-MM-dd}.%i.log"/>
<!-- info 日志文件位置及名称,在rollFile的时候老文件的生成规则 -->
<property name="INFO_FILE_PATH_ING"
value="../logs/app_info.log"/>
<property name="INFO_FILE_PATH_ED"
value="../logs/app_info-%d{yyyy-MM-dd}.%i.log"/>
<!-- error 日志文件位置及名称,在rollFile的时候老文件的生成规则 -->
<property name="ERROR_FILE_PATH_ING"
value="../logs/app_error.log"/>
<property name="ERROR_FILE_PATH_ED"
value="../logs/app_error-%d{yyyy-MM-dd}.%i.log"/>
<!-- warn 日志文件位置及名称,在rollFile的时候老文件的生成规则 -->
<property name="WARN_FILE_PATH_ING"
value="../logs/warn_error.log"/>
<property name="WARN_FILE_PATH_ED"
value="../logs/warn_error-%d{yyyy-MM-dd}.%i.log"/>
<!-- 日志文件最大文件大小全局配置,一天之内最大文件产生数量全局配置 -->
<property name="MAX_FILE_SIZE" value="100MB"/>
<property name="MAX_FILE_NUM" value="30"/>
</Properties>
<appenders>
<!-- 控制台输出日志信息 -->
<console name="Console_Log" target="SYSTEM_OUT">
<PatternLayout pattern="${LOG_PATTERN}"/>
</console>
<!-- debug日志文件输出日志信息 -->
<RollingFile name="Debug_File"
fileName="${DEBUG_FILE_PATH_ING}" filePattern="${DEBUG_FILE_PATH_ED}">
<ThresholdFilter level="DEBUG" onMatch="ACCEPT"
onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy
size="${MAX_FILE_SIZE}"/>
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy
max="${MAX_FILE_NUM}"/>
</RollingFile>
<!-- info日志文件输出日志信息 -->
<RollingFile name="Info_File"
fileName="${INFO_FILE_PATH_ING}" filePattern="${INFO_FILE_PATH_ED}">
<ThresholdFilter level="INFO" onMatch="ACCEPT"
onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy
size="${MAX_FILE_SIZE}"/>
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy
max="${MAX_FILE_NUM}"/>
</RollingFile>
<!-- warn日志文件输出日志信息 -->
<RollingFile name="Warn_File"
fileName="${ERROR_FILE_PATH_ING}" filePattern="${ERROR_FILE_PATH_ED}">
<ThresholdFilter level="WARN" onMatch="ACCEPT"
onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy
size="${MAX_FILE_SIZE}"/>
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy
max="${MAX_FILE_NUM}"/>
</RollingFile>
<!-- error日志文件输出日志信息 -->
<RollingFile name="Error_File"
fileName="${ERROR_FILE_PATH_ING}" filePattern="${ERROR_FILE_PATH_ED}">
<ThresholdFilter level="ERROR" onMatch="ACCEPT"
onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy
size="${MAX_FILE_SIZE}"/>
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy
max="${MAX_FILE_NUM}"/>
</RollingFile>
</appenders>
<!--配置总的日志监听级别 -->
<loggers>
<!-- 业务代码输出debug -->
<Logger name="com.config" level="debug" additivity="true">
<!--
<AppenderRef ref="Debug_File"></AppenderRef>
-->
</Logger>
<root level="INFO">
<appender-ref ref="Console_Log"/>
<!--
<appender-ref ref="Debug_File"/>
<appender-ref ref="Info_File"/>
<appender-ref ref="Error_File"/>
-->
</root>
</loggers>
</configuration>