亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

SpringBoot動態修改日志級別的操作

瀏覽:17日期:2023-02-23 13:14:24
前言

為了減少日志頻繁打印帶來的性能影響,線上環境設置的日志級別一般都相對較高。而當出現生產問題需要排查的時候,可能需要適當降低日志級別(例如DEBUG)來打印更多的日志信息幫助定位問題。

傳統的做法一般是:

1、配置里修改日志級別

2、重啟應用

3、問題復現查看報錯日志排查問題

這個過程需要重啟應用,比較麻煩,效率較低,而且針對大型在線項目,不可能隨便停機重啟。那么有沒有一種方式在不重啟應用的情況下實現動態修改日志級別呢?

下面,讓老萬教你如何通過SpringBoot的actuator組件來實現動態修改日志級別。

一、添加依賴

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>二、配置actuator暴露的端口

#啟用actuator端口management.endpoints.enabled-by-default=fasle#設置actuator的訪問根路徑,默認是/actuatormanagement.endpoints.web.base-path=/message#啟用的端點management.endpoints.web.exposure.include=loggers

這里我修改了actuator的默認訪問路徑/actuator,改為/message,為的是和項目的基礎訪問路徑保存一致。

啟用端口的2中配置方法:

方式一:(推薦)

management.endpoints.web.exposure.include=loggers

方式二:(這種方式測試沒有生效)

management.endpoint.loggers.enabled=true

補充:如何禁用info端口

management.endpoints.enabled-by-default=falsemanagement.endpoint.info.enabled=true

關于actuator組件被稱為spring boot的4大組件之一,功能強大,大家在網上自己找些資料進一步了解。

actuator的endpoint端口說明:ID 描述 默認啟用 auditevents 顯示當前應用程序的審計事件信息 Yes beans 顯示一個應用中所有Spring Beans的完整列表 Yes conditions 顯示配置類和自動配置類(configuration and auto-configuration classes)的狀態及它們被應用或未被應用的原因 Yes configprops 顯示一個所有@ConfigurationProperties的集合列表 Yes env 顯示來自Spring的 ConfigurableEnvironment的屬性 Yes flyway 顯示數據庫遷移路徑,如果有的話 Yes health 顯示應用的健康信息(當使用一個未認證連接訪問時顯示一個簡單的’status’,使用認證連接訪問則顯示全部信息詳情) Yes info 顯示任意的應用信息 Yes liquibase 展示任何Liquibase數據庫遷移路徑,如果有的話 Yes metrics 展示當前應用的metrics信息 Yes mappings 顯示一個所有@RequestMapping路徑的集合列表 Yes scheduledtasks 顯示應用程序中的計劃任務 Yes sessions 允許從Spring會話支持的會話存儲中檢索和刪除(retrieval and deletion)用戶會話。使用Spring Session對反應性Web應用程序的支持時不可用。 Yes shutdown 允許應用以優雅的方式關閉(默認情況下不啟用) No threaddump 執行一個線程dump Yes 如果使用web應用(Spring MVC, Spring WebFlux, 或者 Jersey),你還可以使用以下端點:ID 描述 默認啟用 heapdum 返回一個GZip壓縮的hprof堆dump文件 Yes jolokia 通過HTTP暴露JMX beans(當Jolokia在類路徑上時,WebFlux不可用) Yes logfile 返回日志文件內容(如果設置了logging.file或logging.path屬性的話),支持使用HTTP Range頭接收日志文件內容的部分信息 Yes prometheus 以可以被Prometheus服務器抓取的格式顯示metrics信息 Yes 要更改公開哪些端點,請使用以下技術特定的include和exclude屬性:Property Default management.endpoints.jmx.exposure.exclude * management.endpoints.jmx.exposure.include * management.endpoints.web.exposure.exclude * management.endpoints.web.exposure.include info, health

include屬性列出了公開的端點的ID,

exclude屬性列出了不應該公開的端點的ID

exclude屬性優先于include屬性。包含和排除屬性都可以使用端點ID列表進行配置。

*可以用來選擇所有端點。

例如,要通過HTTP公開除env和beans端點之外的所有內容,請使用以下屬性:

management.endpoints.web.exposure.include=*management.endpoints.web.exposure.exclude=env,beans三、關閉鑒權

一般我們會將actuator和spring security鑒權組件結合使用,防止這些功能端口被隨便調用。由于這里是功能演示,先放開actuator相關端口的權限認證。

SpringBoot動態修改日志級別的操作

此外,如果存在Spring Security,則需要添加自定義安全配置,以允許對端點進行未經身份驗證的訪問,如以下示例所示:放開所有Endpoint端點進行匹配

@Configurationpublic class ActuatorSecurity extends WebSecurityConfigurerAdapter { @Overrideprotected void configure(HttpSecurity http) throws Exception { http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests() .anyRequest().permitAll()}}四 、通過/loggers端口查看日志級別

請求鏈接:http://localhost:8090/message/loggers

注意上面我說過的,我調整了management.endpoints.web.base-path=/message。如果沒有設置此參數,則使用默認的/actuator去訪問。

SpringBoot動態修改日志級別的操作

五、發起http請求修改日志級別

這里演示,修改目錄com.wxswj.provider.message.controller的日志級別為debug

請求類型為POST,參數格式是JSON

curl -H 'Content-Type: application/json' -X POST --data ’{ 'configuredLevel': 'DEBUG'}’ http://localhost:8090/message/loggers/com.wxswj.provider.message.controller

大家可以在服務器上通過curl發起http請求,或者通過Postman發起請求。

curl -H 'Content-Type: application/json' -X POST --data ’{'configuredLevel': 'DEBUG'}’ http://localhost:8090/loggers/com.wxswj.provider.message.controller六、查詢日志級別修改結果

http://localhost:8090/message/loggers/com.wxswj.provider.message.controller

{'configuredLevel': 'DEBUG','effectiveLevel': 'DEBUG'}

說明我們的修改日志級別的請求生效。

總結

通過整合spring boot的actuator組件,公開對應的/loggers端口,我們就可以輕松的實現動態調整系統的日志級別,而不用項目重啟。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 91在线入口| 97精品国产高清自在线看超 | 最新三级网址 | 久久国产精品999 | 久草在线这里只有精品 | 欧美日韩一区二区三区高清不卡 | 小明视频免费永久在线网 | 特别黄的免费视频大片 | 久久尤物视频 | 精品福利视频在线观看视频 | 国产精品性视频免费播放 | 强开小嫩苞一区二区三区l 婷婷丁香色综合狠狠色 | 青青青青青国产免费手机看视频 | 免费国产一区 | 亚洲精品第一国产综合高清 | 欧美一级aa天码毛片 | 女人18一级特级毛片免费看 | 国产激情一区二区三区成人91 | 91精品国产福利尤物免费 | 丁香五月好婷婷深深爱 | 亚洲精品国产第一区二区小说 | 国产精品午夜在线观看 | 九九这里只有精品视频 | 国产精品高清久久久久久久 | www.国产一区二区 | 黄色免费看看 | 另类综合视频 | 澳门成人免费永久视频 | 99视频在线永久免费观看 | 99视频在线看| 影音先锋5566中文源资源 | 品爱网在线观看视频免费视频 | www成人免费观看网站 | 亚洲福利精品一区二区三区 | 国产日韩精品视频 | 91精品啪在线看国产网站 | 亚洲综合图色40p | 一级做片爱性视频免费 | 国产一区二区视频在线播放 | 国产老肥妇视频 | 精品国产一区二区三区不卡 |