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í)間,于是我使用了以上配置,但無論如何就是不生效。百度了很久,發(fā)現(xiàn)都是這么教配置的,于是我懷疑是我的SpringBoot版本過高從而內(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以來,鑒于檢查文件大小是一項(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)
再來看一遍配置
解釋:
1、ch.qos.logback.core.rolling.TimeBasedRollingPolicy 是基于時(shí)間的滾動(dòng)策略實(shí)現(xiàn)類,該類繼承了ch.qos.logback.core.rolling.RollingPolicyBase類,而 fileNamePattern就是該父類中的屬性
官網(wǎng)文檔中的說明,fileNamePattern是必須的屬性
2、timeBasedFileNamingAndTriggeringPolicy是TimeBasedRollingPolicy中的一個(gè)接口對(duì)象,而ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP是該接口的實(shí)現(xiàn)類
3、maxFileSize和checkIncrement是SizeAndTimeBasedFNATP類的屬性,分別代表著單個(gè)文件的存儲(chǔ)量和日志文件的掃描時(shí)間,單位是毫秒,這里的10000毫秒也就是10秒鐘掃描一次
至此問題得到了解決,下面是測(cè)試成功的日志文件列表
說明(重要) 依據(jù)時(shí)間的文件生成觸發(fā)策略只能保證當(dāng)?shù)搅薱heckIncrement的時(shí)間后開始掃描當(dāng)前日志文件的大小,當(dāng)數(shù)據(jù)量超過了maxFileSize,則生成新的文件。
這也就意味著,如果在checkIncrement時(shí)間內(nèi)有高頻率的接口調(diào)用,那么當(dāng)前日志的數(shù)據(jù)量是會(huì)超過maxFileSize的配置的。只能說以較高的掃描頻率去防止單文件生成更多的數(shù)據(jù)量。
以上就是SpringBoot3配置Logback日志滾動(dòng)文件的方法的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot3 Logback滾動(dòng)文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
spring boot 使用@Async實(shí)現(xiàn)異步調(diào)用方法
本篇文章主要介紹了spring boot 使用@Async實(shí)現(xiàn)異步調(diào)用方法,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-04-04Mybatis和orcale update語句中接收參數(shù)為對(duì)象的實(shí)例代碼
Mybatis的 mapper.xml 中 update 語句使用 if 標(biāo)簽判斷對(duì)像屬性是否為空值。本文重點(diǎn)給大家介紹Mybatis和orcale update語句中接收參數(shù)為對(duì)象的實(shí)例代碼,需要的朋友參考下吧2017-09-09SpringBoot加載多個(gè)配置文件實(shí)現(xiàn)dev、product多環(huán)境切換的方法
這篇文章主要介紹了SpringBoot加載多個(gè)配置文件實(shí)現(xiàn)dev、product多環(huán)境切換,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03java web項(xiàng)目里ehcache.xml介紹
java web項(xiàng)目里ehcache.xml介紹,需要的朋友可以參考一下2013-03-03SpringBoot使用DevTools實(shí)現(xiàn)后端熱部署的過程詳解
在Spring Boot項(xiàng)目中,Spring Boot官方提供你了Devtools熱部署模塊,通過maven的方式導(dǎo)入就能使用,本文主要SpringBoot通過DevTools實(shí)現(xiàn)熱部署,感興趣的朋友一起看看吧2023-11-11Idea 搭建Spring源碼環(huán)境的超詳細(xì)教程
這篇文章主要介紹了Idea 搭建Spring源碼環(huán)境,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10SpringBoot與Redis的令牌主動(dòng)失效機(jī)制實(shí)現(xiàn)
本文詳細(xì)介紹了基于SpringBoot和Redis實(shí)現(xiàn)令牌主動(dòng)失效機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12Java編程調(diào)用微信接口實(shí)現(xiàn)圖文信息推送功能
這篇文章主要介紹了Java編程調(diào)用微信接口實(shí)現(xiàn)圖文信息等推送功能,涉及java微信圖文信息推送接口調(diào)用及相關(guān)文件、字符串編碼轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2017-08-08