SpringBoot使用 Log4j2 实现日志输出
一、添加 Log4j2 的依赖
<!-- 引入 log4j2 必须排除 logging -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
当我们引入 log4j2 的时候,需要排除掉 spring-boot-starter-web 中引入的 logging。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<!-- 排除 logging -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
二、创建 log4j2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 该xml配置中,xml元素大小写不敏感 -->
<!-- status="off",log4j2把自身事件记录到控制台的配置,off表示不记录,其余的记录有trace,debug,info,warn,error,fatal -->
<!-- monitorInterval表示检测更改配置的时间,单位是秒,最小间隔为5秒,0或负数表示不检测 -->
<configuration status="off" monitorInterval="0">
<!-- 常量引用 -->
<properties>
<!-- <property>/home/log</property> -->
<property>D:/log</property>
<property>%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level >>> %logger{36} - %msg%n</property>
</properties>
<!-- appender用于接收各种日志 -->
<appenders>
<!-- 常见的输出到console,常用于开发环境中,默认是system_err,还有一个system_out -->
<console target="system_out">
<!-- appender级别的日志过滤 -->
<!-- <thresholdFilter level="info" onMatch="accept" onMismatch="deny"/> -->
<patternLayout pattern="${FORMAT}" />
</console>
<!-- 常用于开发环境,把日志记录到文件中,默认追加 -->
<file fileName="${LOG_HOME}/test.log" append="false">
<patternLayout pattern="${FORMAT}" />
</file>
</appenders>
<!-- 接收appender -->
<loggers>
<logger level="WARN" />
<!-- Spring -->
<logger level="INFO" />
<!-- mybatis loggers -->
<logger level="DEBUG" />
<logger level="DEBUG" />
<logger level="DEBUG" />
<logger level="DEBUG" />
<!-- sql loggers -->
<logger level="DEBUG" additivity="true"/>
<logger level="DEBUG" additivity="true" />
<logger level="DEBUG" additivity="true"/>
<logger level="DEBUG" additivity="true"/>
<!-- 对包进行更详细的配置 -->
<!-- additivity表示是否追加,防止重复,因为root已经接收过一次了 -->
<logger level="DEBUG" additivity="false">
<appender-ref ref="console" />
<appender-ref ref="file" />
</logger>
<!-- root logger,一般用于放置所有的appender -->
<root level="DEBUG">
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
</loggers>
</configuration>