1. 為什么不是log4j?
springBoot 只有1.3.x和1.3.x以下版本才支持log4j的日志配置,1.3.x以上版本只支持log4j2,logback的日志配置
3. 新建module springboot-log4j2
,將base項目中的配置復制來一份
log4j
2. 引入依賴
pom.xml加入log4j2依賴,并同時把spring boot默認的logging去掉
<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. 增加配置文件
-
resource
目錄下增加application.yml,添加如下配置
server:
port: 8081
-
resource
目錄下增加文件log4j2.xml
參考官網配置log4j2,可以看到log4j2
支持xml
、json
和yml
,我們這里拿xml
舉例。具體配置如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<properties>
<!-- 文件輸出格式 -->
<property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</property>
<Property name="instance">spring-boot-log4j2-log</Property>
<Property name="log.dir">D:\logs\log4j2</Property>
</properties>
<appenders>
<Console name="CONSOLE" target="system_out">
<PatternLayout pattern="${PATTERN}"/>
</Console>
<File name="File" fileName="${log.dir}/${instance}.log">
<PatternLayout pattern="${PATTERN}"/>
</File>
</appenders>
<loggers>
<!-- root logger 配置 -->
<root level="info">
<appenderref ref="CONSOLE"/>
<appenderref ref="File"/>
</root>
</loggers>
</configuration>
閱讀如上配置,我們發現,我們配置了console和file,把日志信息會以指定的格式輸出到控制臺和指定目錄的一個文件中。如果我們要配置更為復雜的日志文件輸出,如按日期、按大小拆分文件,可以參考log4j2
官網鏈接https://logging.apache.org/log4j/2.x/manual/configuration.html
4. 驗證
啟動項目,控制臺輸出及文件日志如下截圖
控制臺日志
文件日志