欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring boot線上日志級別動態(tài)調(diào)整的配置步驟

 更新時間:2022年03月01日 16:14:50   作者:kl  
這篇文章主要為大家介紹了spring boot線上日志級別動態(tài)調(diào)整的配置步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步

前言

日志模塊是每個項目中必須的,用來記錄程序運行中的相關信息。一般在開發(fā)環(huán)境下使用DEBUG級別的日志輸出,為了方便查看問題,而在線上一般都使用INFO級別的日志,主要記錄業(yè)務操作的日志。那么問題來了,當線上環(huán)境出現(xiàn)問題希望輸出DEBUG日志信息輔助排查的時候怎么辦呢?修改配置文件,重新打包然后上傳重啟線上環(huán)境,之前確實是這么做的。下面會介紹使用動態(tài)調(diào)整線上日志級別來解決這個問題。

正文

spring boot版本:1.5.7

實現(xiàn)起來超級簡單,使用spring boot自帶的LoggingSystem的api來動態(tài)設置日志級別,當然的項目需要提供動態(tài)調(diào)整的接口,來達動態(tài)調(diào)整的目的。不過博主項目使用了Apollo配置中心,利用其配置動態(tài)生效的特性,soso就搞定了,代碼如下

@Service
public class DynamicLoggersConfig{
	Logger logger= LoggerFactory.getLogger(getClass());
	@ApolloConfig
	private Config config;
	private final static String LoggerTag="logging.level.";
	private final LoggingSystem loggingSystem;
	public DynamicLoggersConfig(LoggingSystem loggingSystem) {
		Assert.notNull(loggingSystem, "LoggingSystem must not be null");
		this.loggingSystem = loggingSystem;
	}
	@ApolloConfigChangeListener
	private void configChangeListter(ConfigChangeEvent changeEvent){
		SetkeyNames=config.getPropertyNames();
		for (String key:keyNames){
			if (StringUtils.containsIgnoreCase(key,LoggerTag)){
				String strLevel=config.getProperty(key,"info");
				LogLevel level = LogLevel.valueOf(strLevel.toUpperCase());
				loggingSystem.setLogLevel(key.replace(LoggerTag,""),level);
				logger.info("{}:{}",key,strLevel);
			}
		}
	}
}

配置

和在spring環(huán)境下正常配置日志級別一樣配置即可,如

logging.level.org.springframework = info
logging.level.com.yudianbank.sales = debug
logging.level.org.hibernate = info

如上代表spring體系工具開啟INFO級別日志,業(yè)務系統(tǒng)開啟DEBUG級別日志,hibernate開啟INFO級別日志

文末結(jié)語

動態(tài)日志輸出看似小功能,卻能解決非常大的問題。各種環(huán)境bug排除都少不了看日志輸出。文件提到的Apollo是攜程開源的配置中心項目,順道推廣下,感謝攜程開源給了我們這么好的產(chǎn)品。項目地址如下

Apollo項目地址:https://github.com/ctripcorp/apollo

以上就是spring boot線上日志級別動態(tài)調(diào)整的配置步驟的詳細內(nèi)容,更多關于spring boot線上日志級別動態(tài)調(diào)整的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解基于Spring Boot/Spring Session/Redis的分布式Session共享解決方案

    詳解基于Spring Boot/Spring Session/Redis的分布式Session共享解決方案

    本篇文章主要介紹了詳解基于Spring Boot/Spring Session/Redis的分布式Session共享解決方案 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • ssm框架上傳圖片保存到本地和數(shù)據(jù)庫示例

    ssm框架上傳圖片保存到本地和數(shù)據(jù)庫示例

    本篇文章主要介紹了ssm框架上傳圖片保存到本地和數(shù)據(jù)庫示例,主要使用了Spring+SpringMVC+MyBatis框架集合,有興趣的可以了解一下。
    2017-03-03
  • Java 多線程實例詳解(三)

    Java 多線程實例詳解(三)

    本文主要介紹 java 線程安全的知識,這里整理了相關資料及實現(xiàn)示例代碼,有興趣的小伙伴可以參考下
    2016-09-09
  • SpringBoot實現(xiàn)發(fā)送郵件任務

    SpringBoot實現(xiàn)發(fā)送郵件任務

    這篇文章主要為大家詳細介紹了SpringBoot實現(xiàn)發(fā)送郵件任務,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Eclipse創(chuàng)建java程序可執(zhí)行jar包教程

    Eclipse創(chuàng)建java程序可執(zhí)行jar包教程

    這篇文章主要為大家分享了Eclipse創(chuàng)建java程序可執(zhí)行jar包教程,具有一定的實用性和參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • springboot寶塔簡單部署的實現(xiàn)示例

    springboot寶塔簡單部署的實現(xiàn)示例

    通過使用Spring Boot,可以快速構(gòu)建出高效、可擴展的應用程序,而寶塔面板則提供了簡單易用的網(wǎng)站管理和維護工具,本文將詳細介紹如何將Spring Boot應用程序與寶塔面板進行集成,實現(xiàn)自動化部署、配置管理等操作
    2023-11-11
  • Kotlin中l(wèi)et、run、with、apply及also的用法和差別

    Kotlin中l(wèi)et、run、with、apply及also的用法和差別

    作用域函數(shù)是Kotlin比較重要的一個特性,分為5種let、run、with、apply及also,這五個函數(shù)的工作方式非常相似,但是我們需要了解這5種函數(shù)的差異,以便在不同的場景更好的利用它,這篇文章主要介紹了Kotlin中l(wèi)et、run、with、apply及also的差別,需要的朋友可以參考下
    2023-11-11
  • JAVA使用POI獲取Excel的列數(shù)與行數(shù)

    JAVA使用POI獲取Excel的列數(shù)與行數(shù)

    Apache POI 是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。 下面這篇文章給大家介紹了JAVA使用POI獲取Excel列數(shù)和行數(shù)的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • java中刪除數(shù)組中重復元素方法探討

    java中刪除數(shù)組中重復元素方法探討

    這個是一個老問題,但是發(fā)現(xiàn)大多數(shù)人說的還不夠透。小弟就在這里拋磚引玉了,歡迎拍磚
    2013-10-10
  • Java嵌套類和內(nèi)部類詳解

    Java嵌套類和內(nèi)部類詳解

    這篇文章主要介紹了Java嵌套類和內(nèi)部類詳解,本文講解了什么是嵌套類及內(nèi)部類、靜態(tài)嵌套類、在外部類中定義內(nèi)部類、在方法中定義內(nèi)部類、匿名內(nèi)部類等內(nèi)容,需要的朋友可以參考下
    2015-04-04

最新評論