springboot1.5.6版本執行時動態切換日誌級別
阿新 • • 發佈:2019-01-28
springboot1.5之前的版本好像沒有這個特性需要自己實現一個actuator endpoint,1.5之後的actuator新增了endpoint支援檢視日誌檔案,檢視日誌級別和動態改變日誌級別.
預設使用的是logback作為日誌框架,需要引入:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
測試目的,可以把許可權問題關閉,不然訪問endpoint的時候會報401錯誤,在application.yml中配置:
management:context-path: /admin security: enabled: false
然後啟動應用程式,在瀏覽器裡面輸入http://localhost:8080/admin/loggers就可以看到所有的loggers和相應的日誌級別資訊,也可以輸入指定的logger name檢視指定的logger資訊:
http://localhost:9090/admin/loggers/com.example.webdemo.controller
此時顯示:
{
"configuredLevel": "DEBUG",
"effectiveLevel": "DEBUG"
}
比如我要改變com.example.webdemo.controller的日誌級別,可以傳送一個post請求:
curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel": "WARN"}' http://localhost:8080/loggers/com.example.webdemo.controller
再在瀏覽器裡面檢視一下http://localhost:9090/admin/loggers/com.example.webdemo.controller
此時日誌級別已經改變:
{
"configuredLevel": "WARN",
"effectiveLevel": "WARN"
}
這樣除錯日誌變得跟方便了,再做一個web頁面來管理這些logger配置使用起來更方便