SpringBoot3配置Logback日志滾動文件的方法
簡介
本文介紹了在SpringBoot3中配置Logback日志滾動文件的方法,因為SpringBoot3內(nèi)置的logback版本是1.4.14,之前使用SpringBoot2.1.5的logback配置發(fā)現(xiàn)有些東西不能生效了
環(huán)境
SpringBoot v3.3.2
內(nèi)置的logback-core為1.4.14
正文
<configuration debug="false" scan="true" scanPeriod="10 seconds"> </configuration>
當我在使用SpringBoot內(nèi)置的logback時,我希望在configuration標簽中自定義日志文件掃描大小的時間,于是我使用了以上配置,但無論如何就是不生效。百度了很久,發(fā)現(xiàn)都是這么教配置的,于是我懷疑是我的SpringBoot版本過高從而內(nèi)置的logback版本已經(jīng)發(fā)生變更從而配置也發(fā)生了變更。
于是我另起了一個項目,將SpringBoot版本設(shè)置為2.1.5,發(fā)現(xiàn)以上配置可以生效。
但是我總不能因為一個日志功能而降低SpringBoot版本吧?
最后查閱官方文檔,發(fā)現(xiàn)了這么個東西

釋義:自1.3.12/1.4.12以來,鑒于檢查文件大小是一項相對昂貴的操作,默認情況下每60秒執(zhí)行一次。但是,您可以將不同的檢查增量設(shè)置為持續(xù)時間。
于是將logback-spring.xml的配置改成了這樣

為什么是改成這樣?看一段代碼就明白了

TimeBasedRollingPolicy類中持有了一個TimeBasedFileNamingAndTriggeringPolicy對象,而TimeBasedFileNamingAndTriggeringPolicyBase是一個抽象類,SizeAndTimeBasedFNATP是TimeBasedFileNamingAndTriggeringPolicyBase的一個實現(xiàn)

再來看一遍配置

解釋:
1、ch.qos.logback.core.rolling.TimeBasedRollingPolicy 是基于時間的滾動策略實現(xiàn)類,該類繼承了ch.qos.logback.core.rolling.RollingPolicyBase類,而 fileNamePattern就是該父類中的屬性

官網(wǎng)文檔中的說明,fileNamePattern是必須的屬性
2、timeBasedFileNamingAndTriggeringPolicy是TimeBasedRollingPolicy中的一個接口對象,而ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP是該接口的實現(xiàn)類
3、maxFileSize和checkIncrement是SizeAndTimeBasedFNATP類的屬性,分別代表著單個文件的存儲量和日志文件的掃描時間,單位是毫秒,這里的10000毫秒也就是10秒鐘掃描一次
至此問題得到了解決,下面是測試成功的日志文件列表

說明(重要) 依據(jù)時間的文件生成觸發(fā)策略只能保證當?shù)搅薱heckIncrement的時間后開始掃描當前日志文件的大小,當數(shù)據(jù)量超過了maxFileSize,則生成新的文件。
這也就意味著,如果在checkIncrement時間內(nèi)有高頻率的接口調(diào)用,那么當前日志的數(shù)據(jù)量是會超過maxFileSize的配置的。只能說以較高的掃描頻率去防止單文件生成更多的數(shù)據(jù)量。
以上就是SpringBoot3配置Logback日志滾動文件的方法的詳細內(nèi)容,更多關(guān)于SpringBoot3 Logback滾動文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Eclipse下使用ANT編譯提示OutOfMemory的解決方法
由于需要使用ANT編譯的代碼比較多,特別是在第一次變異的時候,會出現(xiàn)OutOfMemory錯誤。并提示更改ANT_OPTS設(shè)定。2009-04-04
解決Java調(diào)用BAT批處理不彈出cmd窗口的方法分析
本篇文章是對Java調(diào)用BAT批處理不彈出cmd窗口的方法進行了詳細的分析介紹,需要的朋友參考下2013-05-05
Spring session實現(xiàn)共享單點登錄案例過程解析
這篇文章主要介紹了Spring session實現(xiàn)共享單點登錄案例過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07

