SpringBoot3配置Logback日志滾動(dòng)文件的方法
簡(jiǎn)介
本文介紹了在SpringBoot3中配置Logback日志滾動(dòng)文件的方法,因?yàn)镾pringBoot3內(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>
當(dāng)我在使用SpringBoot內(nèi)置的logback時(shí),我希望在configuration標(biāo)簽中自定義日志文件掃描大小的時(shí)間,于是我使用了以上配置,但無(wú)論如何就是不生效。百度了很久,發(fā)現(xiàn)都是這么教配置的,于是我懷疑是我的SpringBoot版本過(guò)高從而內(nèi)置的logback版本已經(jīng)發(fā)生變更從而配置也發(fā)生了變更。
于是我另起了一個(gè)項(xiàng)目,將SpringBoot版本設(shè)置為2.1.5,發(fā)現(xiàn)以上配置可以生效。
但是我總不能因?yàn)橐粋€(gè)日志功能而降低SpringBoot版本吧?
最后查閱官方文檔,發(fā)現(xiàn)了這么個(gè)東西

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

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

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

再來(lái)看一遍配置

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

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

說(shuō)明(重要) 依據(jù)時(shí)間的文件生成觸發(fā)策略只能保證當(dāng)?shù)搅薱heckIncrement的時(shí)間后開(kāi)始掃描當(dāng)前日志文件的大小,當(dāng)數(shù)據(jù)量超過(guò)了maxFileSize,則生成新的文件。
這也就意味著,如果在checkIncrement時(shí)間內(nèi)有高頻率的接口調(diào)用,那么當(dāng)前日志的數(shù)據(jù)量是會(huì)超過(guò)maxFileSize的配置的。只能說(shuō)以較高的掃描頻率去防止單文件生成更多的數(shù)據(jù)量。
以上就是SpringBoot3配置Logback日志滾動(dòng)文件的方法的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot3 Logback滾動(dòng)文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Spring Boot 日志級(jí)別及配置詳解
- springboot中l(wèi)ogback日志配置的詳細(xì)說(shuō)明
- 一文帶你搞定SpringBoot Log4j2日志配置文件
- SpringBoot日志配置SLF4J和Logback的方法實(shí)現(xiàn)
- Spring?Boot整合log4j2日志配置的詳細(xì)教程
- SpringBoot日志配置全過(guò)程
- Spring?Boot日志打印配置詳細(xì)介紹
- Springboot日志配置的實(shí)現(xiàn)示例
- 如何為?Spring?Boot?項(xiàng)目配置?Logback?日志
- Spring Boot配置日志的實(shí)現(xiàn)步驟
相關(guān)文章
Eclipse下使用ANT編譯提示OutOfMemory的解決方法
由于需要使用ANT編譯的代碼比較多,特別是在第一次變異的時(shí)候,會(huì)出現(xiàn)OutOfMemory錯(cuò)誤。并提示更改ANT_OPTS設(shè)定。2009-04-04
解決Java調(diào)用BAT批處理不彈出cmd窗口的方法分析
本篇文章是對(duì)Java調(diào)用BAT批處理不彈出cmd窗口的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
IDEA中編寫(xiě)并運(yùn)行shell腳本的實(shí)現(xiàn)
這篇文章主要介紹了IDEA中編寫(xiě)并運(yùn)行shell腳本的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
詳解MyBatis延遲加載是如何實(shí)現(xiàn)的
MyBatis 的延遲加載(懶加載)特性允許在需要使用關(guān)聯(lián)對(duì)象數(shù)據(jù)時(shí)才進(jìn)行加載,而不是在執(zhí)行主查詢時(shí)就加載所有相關(guān)數(shù)據(jù),我們將通過(guò)以下幾個(gè)方面來(lái)深入了解MyBatis的延遲加載實(shí)現(xiàn)機(jī)制,需要的朋友可以參考下2024-07-07
Spring session實(shí)現(xiàn)共享單點(diǎn)登錄案例過(guò)程解析
這篇文章主要介紹了Spring session實(shí)現(xiàn)共享單點(diǎn)登錄案例過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07

