【Spring 從0開始】Spring5 新功能,整合日誌框架 Log4j2
阿新 • • 發佈:2021-08-08
本次系列的學習是基於 spring5 ,也就是最新的版本。
spring5 的整個程式碼都是基於 java8 的,自身作了不少的優化,比如許多不建議使用的類和方法已經在程式碼庫中刪除。
此外,spring5 框架自帶了通用的日誌封裝,但是我們依然可以整合其他的日誌框架使用,比如 Log4j。不過在 spring5 中移除了 Log4jConfigListener,需要使用 Log4j2。
一、引入依賴
引入相關 jar 包。
二、建立Log4j2 配置檔案
檔名是固定的 log4j2.xml
。
<?xml version="1.0" encoding="UTF-8"?> <!--日誌級別以及優先順序排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> <!--Configuration後面的status用於設定log4j2自身內部的資訊輸出,可以不設定,當設定成trace時,可以看到log4j2內部各種詳細輸出--> <configuration status="INFO"> <!--先定義所有的appender--> <appenders> <!--輸出日誌資訊到控制檯--> <console name="Console" target="SYSTEM_OUT"> <!--控制日誌輸出的格式--> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </console> </appenders> <!--然後定義logger,只有定義了logger並引入的appender,appender才會生效--> <!--root:用於指定專案的根日誌,如果沒有單獨指定Logger,則會使用root作為預設的日誌輸出--> <loggers> <root level="info"> <appender-ref ref="Console"/> </root> </loggers> </configuration>
現在就可以直接用起來了,執行一下之前的測試函程式碼:
2021-08-08 09:09:21.935 [main] INFO com.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited
Process finished with exit code 0
可以在控制檯看到,日誌資訊是根據上面配置的格式進行輸出的。
三、手動進行單獨的輸出
也可以手動的輸出一些我們指定的內容日誌。
package com.pingguo.spring5.test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class UserLog { private static final Logger log = LoggerFactory.getLogger(UserLog.class); public static void main(String[] args) { log.warn("手動輸出warning"); log.error("手動輸出error"); } }
執行一下:
2021-08-08 09:18:02.285 [main] WARN com.pingguo.spring5.test.UserLog - 手動輸出warning
2021-08-08 09:18:02.288 [main] ERROR com.pingguo.spring5.test.UserLog - 手動輸出error
Process finished with exit code 0
--不要用肉體的勤奮,去掩蓋思考的懶惰--