Spring Boot默认支持的是Logback的日志系统,本节需求为:变更日志系统,使得Spring通过log4j2对日志输出。
在springboot1.4版本已经能够支持log4j2的支持,所以只要简单配置即可完成。
Springboot[日志篇]--集成log4j2输出到mongodb
log4j2官方文档
1. POM配置
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<!-- 排除logback -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 引用log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
</dependency>
<!-- log4j2异步处理依赖(同步处理不用引入) -->
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.4.2</version>
</dependency>
2. log4j2.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="INFO">
<properties>
<property name="LOG_HOME">/logs/demo</property>
<property name="INFO_LOG_FILE_NAME">demo_info</property>
<property name="ERROR_LOG_FILE_NAME">demo_error</property>
</properties>
<appenders>
<console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] [%t] [%c{1.}] - %m%n}"/>
</console>
<RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/${INFO_LOG_FILE_NAME}.log"
filePattern="${LOG_HOME}/${INFO_LOG_FILE_NAME}.%d{yyyy-MM-dd}.log.gz">
<Filters>
<ThresholdFilter level="INFO"/>
<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] [%t] [%c{1.}] - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
<RollingFile name="RollingFileError" fileName="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.log"
filePattern="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.%d{yyyy-MM-dd}.log.gz">
<ThresholdFilter level="ERROR"/>
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] [%t] [%c{1.}] - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
</appenders>
<loggers>
<logger name="org.springframework" level="ERROR"></logger>
<root level="debug">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileInfo"/>
<appender-ref ref="RollingFileError"/>
</root>
</loggers>
</configuration>
异步日志配置log4j2.component.properties
# 全局异步日志
Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
# 控制台彩色打印(新版本默认不支持)
skipJansi=false
网友评论