轉自:https://my.oschina.net/sdlvzg/blog/1612974,做了一些修改
SpringBoot1.5.X版本引入的一個新的控制端點:/loggers,該端點將為我們提供動態修改Spring Boot應用日志級別的強大功能。該功能的使用非常簡單,它依然延續了Spring Boot自動化配置的實現,所以只需要在引入了spring-boot-starter-actuator依賴的條件下就會自動開啟該端點的功能。
下面介紹一下如何動態改變SpringBoot應用的日志級別:
使用工具為IDEA,SpringBoot版本為1.5.4【之以上的版本應該都可以】
1、創建項目
先通過IDEA中Spring Initializr的創建一個名稱為springboot-changeloglevel的項目,並添加web、actuator支持。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
2、修改配置文件
在application.properties增加以下配置信息
#關閉安全認證校驗 management.security.enabled=false
management.context-path=/manage
3、增加測試類
增加一個控制層類,用來輸入不同級別日志,用於測試
package org.lvgang.springbootchangeloglevel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { protected static Logger logger=LoggerFactory.getLogger(TestController.class); @GetMapping("/test") public String hello(){ logger.debug("debug"); //輸出debug級日志 logger.info("info"); //輸出info級日志 logger.warn("warm"); //輸出warm級日志 logger.error("error"); //輸出error級日志 return ""; } }
4、訪問URL說明
完成以上之后,通過SpringBoot啟動文件啟動項目,會在控制台發現發了幾個URL映射,這就是日志相關的監控管理URL。
(get)http://localhost:8080/loggers 通過此URL可以查看項目所有包的日志級別
(get)http://localhost:8080/loggers/org.lvgang 通過此URL可以查看org.lvgang包的日志級別
(post)http://localhost:8080/loggers/org.lvgang 通過此URL可以修改org.lvgang包的日志級別
5、日志級別修改
因需要發送post請求,所有通過Postman工具訪問URL。【注意不要用網頁訪問,我這邊提示了訪問失敗,但是用工具是OK的】
訪問Url:(get)http://localhost:8080/loggers【查看所有的日志級別】 或http://localhost:8080/loggers/org.lvgang 查看一下org.lvgang包的日志級別,可以查看出org.lvgang未配置日志級別。默認的日志級別為INFO
訪問Url:(get)http://localhost:8080/test,查看日志輸出測試類,發現后輸出了info\warm\error三個級別的日志dubug級別的未輸出,原因是默認的日志級別為INFO
訪問url:(post)http://localhost:8080/loggers/org.lvgang,修改org.lvgang日志輸出別為debug。此操作必須增加boby體,並且類型為json,boby內容必須與下圖一致。
【注意是configuredLevel而非configureLevel】
訪問Url:(get)http://localhost:8080/loggers 或http://localhost:8080/loggers/org.lvgang 查看一下org.lvgang包的日志級別,可以查看日志級別為dubug
訪問Url:(get)http://localhost:8080/test,查看日志輸出測試類,發現后輸出了dubug\info\warm\error四個級別的日志都輸出,表示日志級別修改成功了!