前言
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)民和,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220
有時(shí)線上問(wèn)題我們用打日志的方式來(lái)觀察錯(cuò)誤或埋點(diǎn)參數(shù),但由于這些日志如果都打出來(lái)會(huì)占用大量存儲(chǔ)空間而且覆蓋了一些有效信息,所以線上級(jí)別一般設(shè)置INFO,調(diào)試級(jí)別用作特殊情況下。此時(shí)如果線上想查看調(diào)試級(jí)別下的日志,又不能更改日志級(jí)別后重新發(fā)布該怎么辦?
Spring Boot提供了日志級(jí)別動(dòng)態(tài)配置功能,為我們的線上應(yīng)用調(diào)試提供了很好的機(jī)制。在實(shí)際使用中需要結(jié)合Spring-Security提供的安全機(jī)制來(lái)保護(hù)Actuator 提供的各種系統(tǒng)級(jí)端點(diǎn)的安全訪問(wèn)。
SpringBoot從版本 1.5.1 之后就提供了基于 spring-boot-starter-actuator 的端點(diǎn) /loggers。通過(guò)該端點(diǎn)可以實(shí)現(xiàn)查看系統(tǒng)的 package-path 的日志級(jí)別,以及針對(duì)特定的 package-path 配置運(yùn)行中的應(yīng)用的日志級(jí)別的功能。
下面對(duì)動(dòng)態(tài)調(diào)整日志的級(jí)別進(jìn)行設(shè)置。
先引入Actuator依賴
因?yàn)槭腔?Web 的項(xiàng)目和利用 Actuator 提供的端點(diǎn)來(lái)進(jìn)行配置,因此需要依賴:
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-actuator
安全配置
Actuator 提供的端點(diǎn)(Endpoints),默認(rèn)是需要安全認(rèn)證才能夠被訪問(wèn)的。因?yàn)槔锩嫔婕暗揭恍┟舾械男畔?。需要安全認(rèn)證就需要配置 Spring-Security。為了方便首先配置不需要安全權(quán)限的。
在配置中設(shè)置 management.security.enabled=false
GET 請(qǐng)求訪問(wèn)
我們可以發(fā)送GET 請(qǐng)求到 http://localhost:8080/loggers 來(lái)獲取支持的日志等級(jí),以及系統(tǒng)(ROOT)默認(rèn)的日志等和各個(gè)包路徑(com.xxx.commond等)對(duì)應(yīng)的日志級(jí)別。
訪問(wèn)會(huì)返回所有的類的日志級(jí)別信息。
配置特定包的日志級(jí)別
通過(guò) /loggers 端點(diǎn)提供的 POST 請(qǐng)求,修改包路徑com.xxx.commond
的日志級(jí)別為DEBUG:
發(fā)送POST 請(qǐng)求到 http://localhost:8080/loggers/com.xxx.commond,其中請(qǐng)求 Body 的內(nèi)容如下:
{ "configuredLevel": "DEBUG" }
再用GET 訪問(wèn) http://localhost:8080/loggers/com.xxx.commond查看當(dāng)前的日志級(jí)別:
{ configuredLevel: "DEBUG", effectiveLevel: "INFO" }
注意:
通過(guò) /loggers 配置的日志級(jí)別在應(yīng)用重啟時(shí)會(huì)恢復(fù)到系統(tǒng)的配置,如果想永久的配置日志的級(jí)別還是需要通過(guò)logging.level.package-path
來(lái)進(jìn)行配置。
第二種方法就比較簡(jiǎn)單了,如果你有Actuator作了服務(wù)端監(jiān)控,則可以直接訪問(wèn)此監(jiān)控服務(wù),然后進(jìn)入具體要調(diào)整日志級(jí)別的服務(wù)進(jìn)入Logging,直接進(jìn)行點(diǎn)擊設(shè)置即可,非常方便,其實(shí)內(nèi)部幫你做了跟上面一樣的請(qǐng)求。
這樣就可以動(dòng)態(tài)的設(shè)置調(diào)試程序了,而不用重啟服務(wù),是不是非常方便。
部分內(nèi)容引用參見(jiàn):https://www.jb51.net/article/159805.htm
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。