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

SpringBoot動(dòng)態(tài)修改日志級(jí)別的操作

 更新時(shí)間:2021年07月23日 11:11:00   作者:斗者_(dá)2013  
這篇文章主要介紹了SpringBoot動(dòng)態(tài)修改日志級(jí)別的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

前言

為了減少日志頻繁打印帶來(lái)的性能影響,線上環(huán)境設(shè)置的日志級(jí)別一般都相對(duì)較高。而當(dāng)出現(xiàn)生產(chǎn)問題需要排查的時(shí)候,可能需要適當(dāng)降低日志級(jí)別(例如DEBUG)來(lái)打印更多的日志信息幫助定位問題。

傳統(tǒng)的做法一般是:

1、配置里修改日志級(jí)別

2、重啟應(yīng)用

3、問題復(fù)現(xiàn)查看報(bào)錯(cuò)日志排查問題

這個(gè)過程需要重啟應(yīng)用,比較麻煩,效率較低,而且針對(duì)大型在線項(xiàng)目,不可能隨便停機(jī)重啟。那么有沒有一種方式在不重啟應(yīng)用的情況下實(shí)現(xiàn)動(dòng)態(tài)修改日志級(jí)別呢?

下面,讓老萬(wàn)教你如何通過SpringBoot的actuator組件來(lái)實(shí)現(xiàn)動(dòng)態(tài)修改日志級(jí)別。

一、添加依賴

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

二、配置actuator暴露的端口

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

這里我修改了actuator的默認(rèn)訪問路徑/actuator,改為/message,為的是和項(xiàng)目的基礎(chǔ)訪問路徑保存一致。

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

方式一:(推薦)

management.endpoints.web.exposure.include=loggers

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

management.endpoint.loggers.enabled=true

補(bǔ)充:如何禁用info端口

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

關(guān)于actuator組件被稱為spring boot的4大組件之一,功能強(qiáng)大,大家在網(wǎng)上自己找些資料進(jìn)一步了解。

actuator的endpoint端口說明:

ID 描述 默認(rèn)啟用
auditevents 顯示當(dāng)前應(yīng)用程序的審計(jì)事件信息 Yes
beans 顯示一個(gè)應(yīng)用中所有Spring Beans的完整列表 Yes
conditions 顯示配置類和自動(dòng)配置類(configuration and auto-configuration classes)的狀態(tài)及它們被應(yīng)用或未被應(yīng)用的原因 Yes
configprops 顯示一個(gè)所有@ConfigurationProperties的集合列表 Yes
env 顯示來(lái)自Spring的 ConfigurableEnvironment的屬性 Yes
flyway 顯示數(shù)據(jù)庫(kù)遷移路徑,如果有的話 Yes
health 顯示應(yīng)用的健康信息(當(dāng)使用一個(gè)未認(rèn)證連接訪問時(shí)顯示一個(gè)簡(jiǎn)單的'status',使用認(rèn)證連接訪問則顯示全部信息詳情) Yes
info 顯示任意的應(yīng)用信息 Yes
liquibase 展示任何Liquibase數(shù)據(jù)庫(kù)遷移路徑,如果有的話 Yes
metrics 展示當(dāng)前應(yīng)用的metrics信息 Yes
mappings 顯示一個(gè)所有@RequestMapping路徑的集合列表 Yes
scheduledtasks 顯示應(yīng)用程序中的計(jì)劃任務(wù) Yes
sessions 允許從Spring會(huì)話支持的會(huì)話存儲(chǔ)中檢索和刪除(retrieval and deletion)用戶會(huì)話。使用Spring Session對(duì)反應(yīng)性Web應(yīng)用程序的支持時(shí)不可用。 Yes
shutdown 允許應(yīng)用以優(yōu)雅的方式關(guān)閉(默認(rèn)情況下不啟用) No
threaddump 執(zhí)行一個(gè)線程dump Yes

如果使用web應(yīng)用(Spring MVC, Spring WebFlux, 或者 Jersey),你還可以使用以下端點(diǎn):

ID 描述 默認(rèn)啟用
heapdum 返回一個(gè)GZip壓縮的hprof堆dump文件 Yes
jolokia 通過HTTP暴露JMX beans(當(dāng)Jolokia在類路徑上時(shí),WebFlux不可用) Yes
logfile 返回日志文件內(nèi)容(如果設(shè)置了logging.file或logging.path屬性的話),支持使用HTTP Range頭接收日志文件內(nèi)容的部分信息 Yes
prometheus 以可以被Prometheus服務(wù)器抓取的格式顯示metrics信息 Yes

要更改公開哪些端點(diǎn),請(qǐng)使用以下技術(shù)特定的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屬性列出了公開的端點(diǎn)的ID,

exclude屬性列出了不應(yīng)該公開的端點(diǎn)的ID

exclude屬性優(yōu)先于include屬性。包含和排除屬性都可以使用端點(diǎn)ID列表進(jìn)行配置。

*可以用來(lái)選擇所有端點(diǎn)。

例如,要通過HTTP公開除env和beans端點(diǎn)之外的所有內(nèi)容,請(qǐng)使用以下屬性:

management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans

三、關(guān)閉鑒權(quán)

一般我們會(huì)將actuator和spring security鑒權(quán)組件結(jié)合使用,防止這些功能端口被隨便調(diào)用。由于這里是功能演示,先放開actuator相關(guān)端口的權(quán)限認(rèn)證。

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

@Configuration
public class ActuatorSecurity extends WebSecurityConfigurerAdapter {
 
@Override
protected void configure(HttpSecurity http) throws Exception {
    http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests()
    .anyRequest().permitAll()
}

}

四 、通過/loggers端口查看日志級(jí)別

請(qǐng)求鏈接:http://localhost:8090/message/loggers

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

在這里插入圖片描述

五、發(fā)起http請(qǐng)求修改日志級(jí)別

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

請(qǐng)求類型為POST,參數(shù)格式是JSON

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

大家可以在服務(wù)器上通過curl發(fā)起http請(qǐng)求,或者通過Postman發(fā)起請(qǐng)求。

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

六、查詢?nèi)罩炯?jí)別修改結(jié)果

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

{
"configuredLevel": "DEBUG",
"effectiveLevel": "DEBUG"
}

說明我們的修改日志級(jí)別的請(qǐng)求生效。

總結(jié)

通過整合spring boot的actuator組件,公開對(duì)應(yīng)的/loggers端口,我們就可以輕松的實(shí)現(xiàn)動(dòng)態(tài)調(diào)整系統(tǒng)的日志級(jí)別,而不用項(xiàng)目重啟。

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

相關(guān)文章

  • Java中Lambda表達(dá)式并行與組合行為

    Java中Lambda表達(dá)式并行與組合行為

    這篇文章主要介紹了Java中Lambda表達(dá)式并行與組合行為,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • String實(shí)例化及static final修飾符實(shí)現(xiàn)方法解析

    String實(shí)例化及static final修飾符實(shí)現(xiàn)方法解析

    這篇文章主要介紹了String實(shí)例化及static final修飾符實(shí)現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • IntelliJ IDEA 好用插件之a(chǎn)nalyze inspect code詳解

    IntelliJ IDEA 好用插件之a(chǎn)nalyze inspect code詳解

    這篇文章主要介紹了IntelliJ IDEA 好用插件之a(chǎn)nalyze inspect code的相關(guān)知識(shí),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-12-12
  • Java之String、StringBuffer、StringBuilder的區(qū)別分析

    Java之String、StringBuffer、StringBuilder的區(qū)別分析

    今天搞安卓在看書的時(shí)候遇到了StringBuilder這個(gè)類型的東東,有點(diǎn)小迷,不知道它跟string、stringbuffer的關(guān)系式怎么樣的,趕快查閱相關(guān)資料,了解了個(gè)大概,拿出來(lái)分享一下
    2012-11-11
  • idea導(dǎo)入jar包的詳細(xì)圖文教程

    idea導(dǎo)入jar包的詳細(xì)圖文教程

    這篇文章主要給大家介紹了關(guān)于idea導(dǎo)入jar包的詳細(xì)圖文教程,文中通過圖文將導(dǎo)入的步驟介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 在Filter中不能注入bean的問題及解決

    在Filter中不能注入bean的問題及解決

    這篇文章主要介紹了在Filter中不能注入bean的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java~springboot~ibatis數(shù)組in查詢的實(shí)現(xiàn)方法

    java~springboot~ibatis數(shù)組in查詢的實(shí)現(xiàn)方法

    這篇文章主要介紹了java~springboot~ibatis數(shù)組in查詢的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2018-09-09
  • 詳解Spring Cache使用Redisson分布式鎖解決緩存擊穿問題

    詳解Spring Cache使用Redisson分布式鎖解決緩存擊穿問題

    本文主要介紹了詳解Spring Cache使用Redisson分布式鎖解決緩存擊穿問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 解決@Transactional注解事務(wù)不回滾不起作用的問題

    解決@Transactional注解事務(wù)不回滾不起作用的問題

    這篇文章主要介紹了解決@Transactional注解事務(wù)不回滾不起作用的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2021-02-02
  • Spring Boot2解決idea console 控制臺(tái)輸出亂碼的問題

    Spring Boot2解決idea console 控制臺(tái)輸出亂碼的問題

    這篇文章主要介紹了Spring Boot2解決idea console 控制臺(tái)輸出亂碼的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評(píng)論

平乡县| 资源县| 共和县| 承德市| 社旗县| 五河县| 文成县| 高雄县| 阜阳市| 南溪县| 中阳县| 濉溪县| 茶陵县| 精河县| 伊吾县| 根河市| 凤台县| 新津县| 绥德县| 北川| 高要市| 平顺县| 本溪| 梁山县| 竹北市| 沁水县| 同仁县| 吴忠市| 五峰| 泸溪县| 峨边| 乐清市| 怀宁县| 方山县| 田阳县| 哈尔滨市| 荔浦县| 六枝特区| 五大连池市| 屏边| 射阳县|