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