動(dòng)態(tài)配置Spring Boot日志級(jí)別的全步驟
前言
項(xiàng)目使用了SpringBoot構(gòu)建項(xiàng)目。下面對(duì)動(dòng)態(tài)調(diào)整日志的級(jí)別進(jìn)行記錄。
從版本 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í)別的功能。
Actuator 依賴(lài)
pom 依賴(lài)
因?yàn)槭腔?Web 的項(xiàng)目和利用 Actuator 提供的端點(diǎn)來(lái)進(jìn)行配置,因此需要依賴(lài):
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
安全配置
Actuator 提供的端點(diǎn)(Endpoints),默認(rèn)是需要安全認(rèn)證才能夠被訪問(wèn)的。因?yàn)槔锩嫔婕暗揭恍┟舾械男畔ⅰP枰踩J(rèn)證就需要配置 Spring-Security。為了方便首先配置不需要安全權(quán)限的。
management.security.enabled=false
GET 請(qǐng)求訪問(wèn)
我們可以發(fā)送GET 請(qǐng)求到 http://localhost:8091/loggers 來(lái)獲取支持的日志等級(jí),以及系統(tǒng)(ROOT)默認(rèn)的日志等和各個(gè)包路徑(com.mall.goods.zhongkui等)對(duì)應(yīng)的日志級(jí)別。
{
levels: [
"OFF",
"FATAL",
"ERROR",
"WARN",
"INFO",
"DEBUG",
"TRACE"
],
loggers: {
ROOT: {
configuredLevel: "INFO",
effectiveLevel: "INFO"
},
com.mall.goods.zhongkui: {
configuredLevel: "DEBUG",
effectiveLevel: "DEBUG"
},
com.mall.goods.zhongkui.mallcpswomai.mapper: {
configuredLevel: "DEBUG",
effectiveLevel: "DEBUG"
}
}
}
配置日志級(jí)別
編寫(xiě)日志輸出類(lèi)
編寫(xiě)一個(gè)controller 輸出各個(gè)級(jí)別的日志:
@Slf4j
@Controller
public class TestController {
@GetMapping(value = "/testLog")
public String testLog() {
log.info("---------------------------");
log.debug("debug debug");
log.info("info info info");
log.warn("warn warn warn");
log.error("error error error ");
log.info("---------------------------");
return "ok";
}
}
查看日志級(jí)別
啟動(dòng)應(yīng)用訪問(wèn) http://localhost:8091/ 得到:
[2018-07-30 18:05:42.868] [http-nio-8091-exec-2] INFO com.mall.goods.zhongkui.mallcpswomai.web.OrderRelationController----------------------------
[2018-07-30 18:05:42.869] [http-nio-8091-exec-2] DEBUG com.mall.goods.zhongkui.mallcpswomai.web.OrderRelationController-debug debug
[2018-07-30 18:05:42.869] [http-nio-8091-exec-2] INFO com.mall.goods.zhongkui.mallcpswomai.web.OrderRelationController-info info info
[2018-07-30 18:05:42.869] [http-nio-8091-exec-2] WARN com.mall.goods.zhongkui.mallcpswomai.web.OrderRelationController-warn warn warn
[2018-07-30 18:05:42.869] [http-nio-8091-exec-2] ERROR com.mall.goods.zhongkui.mallcpswomai.web.OrderRelationController-error error error
[2018-07-30 18:05:42.869] [http-nio-8091-exec-2] INFO com.mall.goods.zhongkui.mallcpswomai.web.OrderRelationController----------------------------
Spring Boot 默認(rèn)的 ROOT 日志級(jí)別是INFO。
配置特定包的日志級(jí)別
通過(guò) /loggers 端點(diǎn)提供的 POST 請(qǐng)求,修改包路徑com.mall.goods.zhongkui 的日志級(jí)別為INFO。
* 發(fā)送POST 請(qǐng)求到 http://localhost:8091/com.mall.goods.zhongkui,其中請(qǐng)求 Body 的內(nèi)容如下:
{
"configuredLevel": "INFO"
}
•GET 訪問(wèn) /loggers/com.mall.goods.zhongkui 查看當(dāng)前的日志級(jí)別:
{
configuredLevel: "INFO",
effectiveLevel: "INFO"
}
•再次訪問(wèn) http://localhost:8091/ 得到:需要注意的是,通過(guò) /loggers 配置的日志級(jí)別在應(yīng)用重啟時(shí)會(huì)恢復(fù)到系統(tǒng)的配置。如果想永久的配置日志的級(jí)別還是需要通過(guò)logging.level.package-path 來(lái)進(jìn)行配置。
總結(jié)
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)。
參考
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
java9開(kāi)始——接口中可以定義private私有方法
這篇文章主要介紹了從java9開(kāi)始 接口中可以定義private私有方法,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下2020-10-10
java 如何往已經(jīng)存在的excel表格里面追加數(shù)據(jù)的方法
這篇文章主要介紹了java 如何往已經(jīng)存在的excel表格里面追加數(shù)據(jù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
如何在SpringBoot項(xiàng)目中集成SpringSecurity進(jìn)行權(quán)限管理
在本文中,我們將討論如何在Spring?Boot項(xiàng)目中集成權(quán)限管理,我們將使用Spring?Security框架,這是一個(gè)專(zhuān)門(mén)用于實(shí)現(xiàn)安全性功能的框架,包括認(rèn)證和授權(quán),需要的朋友可以參考下2023-07-07
Java使用Swing實(shí)現(xiàn)一個(gè)模擬電腦計(jì)算器
Java Swing 是一個(gè)用于創(chuàng)建 Java GUI(圖形用戶(hù)界面)的框架,它提供了一系列的 GUI 組件和工具,可以用于創(chuàng)建桌面應(yīng)用程序,包括按鈕、文本框、標(biāo)簽、表格等等,本文給大家介紹了Java使用Swing實(shí)現(xiàn)一個(gè)模擬計(jì)算器,感興趣的同學(xué)可以自己動(dòng)手嘗試一下2024-05-05
spring是如何實(shí)現(xiàn)聲明式事務(wù)的
這篇文章主要介紹了spring是如何實(shí)現(xiàn)聲明式事務(wù)的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
SpringSceurity實(shí)現(xiàn)短信驗(yàn)證碼功能的示例代碼
這篇文章主要介紹了SpringSceurity實(shí)現(xiàn)短信驗(yàn)證碼功能的示例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
在SpringBoot中靜態(tài)資源訪問(wèn)方法
這篇文章給大家介紹了在SpringBoot中靜態(tài)資源訪問(wèn)方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-11-11
java中實(shí)現(xiàn)excel合并單元格詳細(xì)代碼實(shí)例
最近的工作中,遇到一個(gè)需求在生成的Excel表格后需要在尾部添加一個(gè)合并的單元格數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于java中實(shí)現(xiàn)excel合并單元格的相關(guān)資料,需要的朋友可以參考下2024-06-06

