Spring5新功能日志框架Log4j2整合示例
Spring5整合Log4j2日志框架
本次系列的學(xué)習(xí)是基于 spring5 ,也就是最新的版本。
spring5 的整個(gè)代碼都是基于 java8 的,自身作了不少的優(yōu)化,比如許多不建議使用的類和方法已經(jīng)在代碼庫中刪除。
此外,spring5 框架自帶了通用的日志封裝,但是我們依然可以整合其他的日志框架使用,比如 Log4j。不過在 spring5 中移除了 Log4jConfigListener,需要使用 Log4j2。
一、引入依賴
引入相關(guān) jar 包。
二、創(chuàng)建Log4j2 配置文件
文件名是固定的 log4j2.xml
。
<?xml version="1.0" encoding="UTF-8"?> <!--日志級(jí)別以及優(yōu)先級(jí)排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> <!--Configuration后面的status用于設(shè)置log4j2自身內(nèi)部的信息輸出,可以不設(shè)置,當(dāng)設(shè)置成trace時(shí),可以看到log4j2內(nèi)部各種詳細(xì)輸出--> <configuration status="INFO"> <!--先定義所有的appender--> <appenders> <!--輸出日志信息到控制臺(tái)--> <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才會(huì)生效--> <!--root:用于指定項(xiàng)目的根日志,如果沒有單獨(dú)指定Logger,則會(huì)使用root作為默認(rèn)的日志輸出--> <loggers> <root level="info"> <appender-ref ref="Console"/> </root> </loggers> </configuration>
現(xiàn)在就可以直接用起來了,執(zhí)行一下之前的測試函代碼:
2021-08-08 09:09:21.935 [main] INFO com.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited Process finished with exit code 0
可以在控制臺(tái)看到,日志信息是根據(jù)上面配置的格式進(jìn)行輸出的。
三、手動(dòng)進(jìn)行單獨(dú)的輸出
也可以手動(dòng)的輸出一些我們指定的內(nèi)容日志。
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("手動(dòng)輸出warning"); log.error("手動(dòng)輸出error"); } }
執(zhí)行一下:
2021-08-08 09:18:02.285 [main] WARN com.pingguo.spring5.test.UserLog - 手動(dòng)輸出warning 2021-08-08 09:18:02.288 [main] ERROR com.pingguo.spring5.test.UserLog - 手動(dòng)輸出error Process finished with exit code 0
以上就是Spring5新功能日志框架Log4j2整合示例的詳細(xì)內(nèi)容,更多關(guān)于Spring5整合Log4j2日志框架的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot項(xiàng)目中同時(shí)操作多個(gè)數(shù)據(jù)庫的實(shí)現(xiàn)方法
在實(shí)際項(xiàng)目開發(fā)中可能存在需要同時(shí)操作兩個(gè)數(shù)據(jù)庫的場景,本文主要介紹了SpringBoot項(xiàng)目中同時(shí)操作多個(gè)數(shù)據(jù)庫的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Springboot?No?bean?named?'XXXXX'?available?問
這篇文章主要介紹了Springboot?No?bean?named?'XXXXX'?available?問題解決方法,解決方法也很簡單,盡量規(guī)范類的命名,注解中指定bean名稱,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07Java Excel透視表相關(guān)操作實(shí)現(xiàn)代碼
這篇文章主要介紹了Java Excel透視表相關(guān)操作實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08GraalVM和Spring Native嘗鮮一步步讓Springboot啟動(dòng)飛起來66ms完成啟動(dòng)
GraalVM是高性能的JDK,支持Java/Python/JavaScript等語言,它可以讓Java變成二進(jìn)制文件來執(zhí)行,讓程序在任何地方運(yùn)行更快,這篇文章主要介紹了GraalVM和Spring Native嘗鮮一步步讓Springboot啟動(dòng)飛起來66ms完成啟動(dòng),需要的朋友可以參考下2023-02-02java高并發(fā)鎖的3種實(shí)現(xiàn)示例代碼
本篇文章主要介紹了java高并發(fā)鎖的3種實(shí)現(xiàn)示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08詳解Springboot集成sentinel實(shí)現(xiàn)接口限流入門
這篇文章主要介紹了詳解Springboot集成sentinel實(shí)現(xiàn)接口限流入門,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11淺談Java中的集合存儲(chǔ)數(shù)據(jù)后,輸出數(shù)據(jù)的有序和無序問題
這篇文章主要介紹了淺談Java中的集合存儲(chǔ)數(shù)據(jù)后,輸出數(shù)據(jù)的有序和無序問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09Spring的Bean注入解析結(jié)果BeanDefinition詳解
這篇文章主要介紹了Spring的Bean注入解析結(jié)果BeanDefinition詳解,BeanDefinition描述了一個(gè)bean實(shí)例,擁有屬性值、構(gòu)造參數(shù)值和具體實(shí)現(xiàn)的其他信息,其是一個(gè)bean的元數(shù)據(jù),xml中配置的bean元素會(huì)被解析成BeanDefinition對(duì)象,需要的朋友可以參考下2023-12-12