最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

logback日志級(jí)別設(shè)置無(wú)效問題及解決

 更新時(shí)間:2025年11月13日 09:05:57   作者:shuxiaohua  
文章總結(jié):文章介紹了在Spring?Boot項(xiàng)目中配置日志級(jí)別時(shí),優(yōu)先級(jí)問題,通過(guò)查閱資料發(fā)現(xiàn),配置文件中的logging.level.xx也能配置日志級(jí)別,且優(yōu)先級(jí)比logback.xml高,文章還提供了源碼分析,說(shuō)明了Spring?Boot如何處理日志級(jí)別配置

背景

項(xiàng)目同事在定位定時(shí)任務(wù)沒執(zhí)行時(shí)發(fā)現(xiàn),定時(shí)任務(wù)中的日志沒有打印,改成WARN后能夠正常打印(代碼中l(wèi)og.info()改為log.warn())。

檢查logback.xml中發(fā)現(xiàn)對(duì)應(yīng)的日志級(jí)別為INFO級(jí)別,當(dāng)時(shí)不清楚還有哪里能夠配置日志級(jí)別,遂百度查閱資料。

原來(lái)配置文件中的logging.level.xx也能配置日志級(jí)別,且優(yōu)先級(jí)比logback.xml高。以下是源碼分析。

源碼分析

首先spring的配置項(xiàng)

都會(huì)在spring-configuration-metadata.json中進(jìn)行說(shuō)明,因此在IDE中搜索該關(guān)鍵字,查看配置項(xiàng)的說(shuō)明。

    {
      "name": "logging.level",
      "type": "java.util.Map<java.lang.String,java.lang.String>",
      "description": "Log levels severity mapping. For instance, `logging.level.org.springframework=DEBUG`.",
      "sourceType": "org.springframework.boot.context.logging.LoggingApplicationListener"
    }

從內(nèi)容中可以看到

該配置項(xiàng)由org.springframework.boot.context.logging.LoggingApplicationListener處理。

	protected void setLogLevels(LoggingSystem system, ConfigurableEnvironment environment) {
		BiConsumer<String, LogLevel> customizer = getLogLevelConfigurer(system);
		Binder binder = Binder.get(environment);
		# 從配置中獲取日志級(jí)別的配置項(xiàng)
		Map<String, LogLevel> levels = binder.bind(LOGGING_LEVEL, STRING_LOGLEVEL_MAP).orElseGet(Collections::emptyMap);
		levels.forEach((name, level) -> configureLogLevel(name, level, customizer));
	}

	private void configureLogLevel(String name, LogLevel level, BiConsumer<String, LogLevel> configurer) {
		if (this.loggerGroups != null) {
			LoggerGroup group = this.loggerGroups.get(name);
			if (group != null && group.hasMembers()) {
				group.configureLogLevel(level, configurer);
				return;
			}
		}
		# 代碼會(huì)走到這里
		configurer.accept(name, level);
	}

配置logging.level.org=ERROR調(diào)試代碼如下

可以看到通過(guò)logfactory獲取logger后

使用logging.level配置項(xiàng)重新覆蓋了其日志級(jí)別,所以配置項(xiàng)中的日志級(jí)別高于logback.xml中的日志級(jí)別。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java實(shí)現(xiàn)銀行家算法(Swing界面)

    java實(shí)現(xiàn)銀行家算法(Swing界面)

    這篇文章主要為大家詳細(xì)介紹了銀行家算法的java代碼實(shí)現(xiàn),Swing寫的界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 解決Failed to get nested archive for entry BOOT-INF/lib/xxx.jar問題

    解決Failed to get nested archive for&

    解決BOOT-INF/lib/xxx.jar替換異常需確保路徑正確:解壓原jar包,替換BOOT-INF/lib目錄下的目標(biāo)jar,再重新打包,手動(dòng)創(chuàng)建目錄結(jié)構(gòu)同樣有效,但需嚴(yán)格匹配原路徑,避免錯(cuò)誤
    2025-08-08
  • 淺析Java中的虛擬線程

    淺析Java中的虛擬線程

    在本篇文章中,小編將帶大家深入了解Java虛擬線程的原理、如何使用、使用的注意事項(xiàng)以及其他相似技術(shù)的差別,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • spring為類的靜態(tài)屬性實(shí)現(xiàn)注入實(shí)例方法

    spring為類的靜態(tài)屬性實(shí)現(xiàn)注入實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于spring為類的靜態(tài)屬性實(shí)現(xiàn)注入實(shí)例方法,有需要的朋友們可以參考下。
    2019-10-10
  • Springboot+Flowable?快速實(shí)現(xiàn)工作流的開發(fā)流程

    Springboot+Flowable?快速實(shí)現(xiàn)工作流的開發(fā)流程

    這篇文章主要介紹了Springboot+Flowable?快速實(shí)現(xiàn)工作流的開發(fā)流程,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • tomcat在Linux環(huán)境下的安裝與配置詳細(xì)教程

    tomcat在Linux環(huán)境下的安裝與配置詳細(xì)教程

    這篇文章主要介紹了tomcat在Linux環(huán)境下安裝與配置的相關(guān)資料,涵蓋Java環(huán)境準(zhǔn)備、下載解壓、啟動(dòng)服務(wù)、部署項(xiàng)目及管理界面設(shè)置,適合開發(fā)測(cè)試環(huán)境搭建,需要的朋友可以參考下
    2025-05-05
  • JAVA編程實(shí)現(xiàn)TCP網(wǎng)絡(luò)通訊的方法示例

    JAVA編程實(shí)現(xiàn)TCP網(wǎng)絡(luò)通訊的方法示例

    這篇文章主要介紹了JAVA編程實(shí)現(xiàn)TCP網(wǎng)絡(luò)通訊的方法,簡(jiǎn)單說(shuō)明了TCP通訊的原理并結(jié)合具體實(shí)例形式分析了java實(shí)現(xiàn)TCP通訊的步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • 詳解SpringBoot 添加對(duì)JSP的支持(附常見坑點(diǎn))

    詳解SpringBoot 添加對(duì)JSP的支持(附常見坑點(diǎn))

    這篇文章主要介紹了詳解SpringBoot 添加對(duì)JSP的支持(附常見坑點(diǎn)),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-10-10
  • Java截取字符串的幾種常用方法

    Java截取字符串的幾種常用方法

    這篇文章主要給大家介紹了關(guān)于Java截取字符串的幾種常用方法,在Java編程語(yǔ)言中,String類提供了用于操作字符串的豐富方法,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • 利用Java判斷一個(gè)字符串是否包含某個(gè)字符

    利用Java判斷一個(gè)字符串是否包含某個(gè)字符

    在Java編程中,字符串操作是日常開發(fā)的常見任務(wù),涉及判斷、查找、替換等多種操作,文章介紹了如何在Java中判斷字符串是否包含某字符,提供了使用contains方法和字符數(shù)組遍歷兩種基礎(chǔ)方法,需要的朋友可以參考下
    2024-11-11

最新評(píng)論

长寿区| 弥勒县| 乌审旗| 赤峰市| 乌拉特前旗| 六盘水市| 长岛县| 天峻县| 洮南市| 沙雅县| 阜新市| 疏附县| 新平| 浦江县| 凤台县| 南乐县| 台东县| 东平县| 万州区| 泾源县| 陇西县| 德惠市| 固阳县| 苏尼特右旗| 彝良县| 蓝山县| 扬州市| 平乡县| 临沂市| 全南县| 和平区| 英吉沙县| 宿松县| 左权县| 米易县| 加查县| 长丰县| 九台市| 镇坪县| 通城县| 博兴县|