1、設定裡修改日誌等級
2、重啟應用程式
3、問題複現查看報錯日誌排查問題
這個過程需要重啟應用,比較麻煩,效率較低,而且針對大型線上項目,不可能隨便停機重啟。那麼有沒有一種方式在不重啟應用的情況下實現動態修改日誌等級呢?
下面,讓老萬教你如何透過SpringBoot的actuator元件來實現動態修改日誌等級。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
#启用actuator端口 management.endpoints.enabled-by-default=fasle #设置actuator的访问根路径,默认是/actuator management.endpoints.web.base-path=/message #启用的端点 management.endpoints.web.exposure.include=loggers
這裡我修改了actuator的預設存取路徑/actuator,改為/message,為的是和專案的基礎存取路徑保存一致。
方式一:(建議)
management.endpoints.web.exposure.include=loggers
方式二:(這種方式測試沒有生效)
management.endpoint.loggers.enabled=true
補充:如何停用info連接埠
management.endpoints.enabled-by-default=false management.endpoint.info.enabled=true
關於actuator元件被稱為spring boot的4大元件之一,功能強大,大家在網路上自己找些資料進一步了解。
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 |
#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 |
Property | #Default |
---|---|
* | |
#* | |
* | |
info, health |
以上是SpringBoot動態修改日誌等級的操作是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!