首先假设读者已经将SpringBoot+Idea+Maven工程成功搭建,下面对Log4j2的集成做一下说明:
- 工程application.yml配置:
# log4j2.xml配置
logging:
config: classpath:log4j2.xml
# log4j2.yml配置
# logging:
# config: classpath:log4j2.properties
# log4j2.yml配置
# logging:
# config: classpath:log4j2.yml
- pom.xml添加依赖:
<!--web服务-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--必须加这个依赖并exclusion掉Spring中内置的logging,不然在加载log4j2是报错-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</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>
<!-- 日志——读取log4j2.yml文件,若为.xml或者.properties配置文件则不需要加-->
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
</dependency>
若添加依赖后Maven不能自动加载,则需要我们辅助安装一下,操作如下图所示:
在配置依赖时需要注意:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--exclusion不能在这个依赖中添加,否则在加载log4j2时仍然会出现错误-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
- Log4j2配置文件类型(选择任何一个都可以,具体配置可以根据自己的需要进行选择):
(1) Log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
<appenders>
<Console name="Console" target="SYSTEM_OUT">
<!--只接受程序中DEBUG级别的日志进行处理-->
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[%d{HH:mm:ss.SSS}] %-5level %class{36} %L %M - %msg%xEx%n"/>
</Console>
<!--处理DEBUG级别的日志,并把该日志放到logs/debug.log文件中-->
<!--打印出DEBUG级别日志,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
<RollingFile name="RollingFil