springboot整合logback實(shí)現(xiàn)日志管理操作
本章節(jié)是記錄logback在springboot項(xiàng)目中的簡單使用,本文將會演示如何通過logback將日志記錄到日志文件或輸出到控制臺等管理操作。將會從以下幾個方面進(jìn)行講解。最后實(shí)現(xiàn)將特定級別的特定日志保存到日志文件。
一、依賴
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.10</version> </dependency> <dependency> <groupId>org.codehaus.janino</groupId> <artifactId>janino</artifactId> <version>3.0.6</version> </dependency>
以上版本只是測試時使用,實(shí)際版本根據(jù)項(xiàng)目來。
二、標(biāo)簽介紹
1、configuration
logback配置文件的根標(biāo)簽
屬性:
scan:當(dāng)此屬性設(shè)置為true時,配置文件如果發(fā)生改變,將會被重新加載,默認(rèn)值為true。
scanPeriod:設(shè)置監(jiān)測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認(rèn)單位是毫秒,當(dāng)scan為true時,此屬性生效。默認(rèn)的時間間隔為1分鐘。
debug:當(dāng)此屬性設(shè)置為true時,將打印出logback內(nèi)部日志信息,實(shí)時查看logback運(yùn)行狀態(tài)。默認(rèn)值為false
2、springProperty
我理解的是配置常量值的數(shù)據(jù)來源和默認(rèn)值
屬性:
scope:作用域
name:變量名稱
source:數(shù)據(jù)來源
defaultValue:默認(rèn)值
3、property
定義常量和給常量賦值
屬性:
name:常量名稱
value:常量值
4、appender
日志的具體格式或者保存地址等配置處理
屬性:
name:appender的名字
class:類型,有ConsoleAppender、RollingFileAppender、AsyncAppender、FileAppender。ConsoleAppender:控制臺日志。
RollingFileAppender:滾動文件日志,繼承于FileAppender,使用更便捷。
AsyncAppender:異步日志,相較于其他的,他不負(fù)責(zé)處理日志,只是將日志緩沖到一個BlockingQueue里面去,并在內(nèi)部創(chuàng)建一個工作線程從隊(duì)列頭部獲取日志,之后將獲取的日志循環(huán)記錄到附加的其他 appender上去,從而達(dá)到不阻塞主線程的效果。因此AsynAppender僅僅充當(dāng)事件轉(zhuǎn)發(fā)器,必須引用另一個appender來做事。
FileAppender:文件日志,我們不做演示,就用RollingFileAppender演示,功能差不多。
5、logger
單獨(dú)對某種日志做處理
6、root
統(tǒng)一的所有日志的處理(除了logger處理的)
三、實(shí)例演示
加入現(xiàn)在我有這樣一個需求:1、項(xiàng)目本身的日志我想記錄下來保存文件并打印控制臺;2、springfox.documentation這個包下面關(guān)于swagger的日志我覺得沒有用處并不想存入文件只打印控制臺就可以了;3、其他的第三方包該輸出什么日志就都保存文件并打印控制臺不做干涉;4、我還想做一個配置可以控制向日志文件輸出的開關(guān)。
有了這個需求,我們就可以開始做了。
1、新建一個xml文件
留下如上內(nèi)容。
2、增加configuration標(biāo)簽
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="false" scanPeriod="60 seconds" debug="false"> </configuration>
3、由于需要控制是否需要向日志文件輸入就需要新增一個變量來控制一下,通過springProperty標(biāo)簽實(shí)現(xiàn)
我們后面需要指定一個文件存日志,文件名就叫項(xiàng)目名,所以再增加一個項(xiàng)目名變量,同樣通過springProperty標(biāo)簽實(shí)現(xiàn)。
4、通過property標(biāo)簽新增幾個常量來統(tǒng)一一下文件配置的一些值
5、通過appender標(biāo)簽實(shí)現(xiàn)日志的處理規(guī)則
新增三個類型的appender,class如上固定路徑。設(shè)置編碼格式和輸出格式等。異步日志appender綁定到name為rolling的滾動日志即為實(shí)際是走name為rolling的appender邏輯,只是先到async緩沖一下。
6、新增logger便簽,配置成項(xiàng)目本身的日志通過變量來控制是否輸入到日志文件,而springfox.documentation這個包只輸出到控制臺
7、再配置root標(biāo)簽
沒有特別定義則默認(rèn)為root,任何一個類只會和一個logger對應(yīng)。
8、驗(yàn)證
隨便增加一個項(xiàng)目本身的日志輸出,啟動項(xiàng)目。
可以看到多了一個日志文件。
可以看到特殊處理的包日志文件沒有,而控制臺存在。
而項(xiàng)目本身的日志確實(shí)是都存在。手動清空日志文件,并將配置改為關(guān)閉,重啟項(xiàng)目。
可以看到確實(shí)沒有向日志文件輸出了,控制臺的日志也明顯較少,只有項(xiàng)目本身的日志和springfox.documentation的日志了。
logback的筆記到此結(jié)束,歡迎交流。
到此這篇關(guān)于springboot整合logback實(shí)現(xiàn)日志管理的文章就介紹到這了,更多相關(guān)springboot整合logback內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot如何獲取application.properties中自定義的值
這篇文章主要介紹了SpringBoot獲取application.properties中的自定義的值,目錄結(jié)構(gòu)文件代碼給大家列舉的非常詳細(xì),需要的朋友可以參考下2021-09-09Springboot基于enable模塊驅(qū)動的實(shí)現(xiàn)
這篇文章主要介紹了Springboot基于enable模塊驅(qū)動的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Java實(shí)現(xiàn)判斷瀏覽器版本與類型簡單代碼示例
這篇文章主要介紹了Java實(shí)現(xiàn)判斷瀏覽器版本與類型簡單代碼示例,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12使用SpringCloudApiGateway之支持Cors跨域請求
這篇文章主要介紹了使用SpringCloudApiGateway之支持Cors跨域請求的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07Java上傳文件進(jìn)度條的實(shí)現(xiàn)方法(附demo源碼下載)
這篇文章主要介紹了Java上傳文件進(jìn)度條的實(shí)現(xiàn)方法,可簡單實(shí)現(xiàn)顯示文件上傳比特數(shù)及進(jìn)度的功能,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2015-12-12