溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

動(dòng)態(tài)配置Spring Boot日志級(jí)別的全步驟

發(fā)布時(shí)間:2020-09-02 02:44:56 來(lái)源:腳本之家 閱讀:162 作者:細(xì)品熱咖啡 欄目:編程語(yǔ)言

前言

項(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。通過該端點(diǎn)可以實(shí)現(xiàn)查看系統(tǒng)的 package-path 的日志級(jí)別,以及針對(duì)特定的 package-path 配置運(yùn)行中的應(yīng)用的日志級(jí)別的功能。

Actuator 依賴

pom 依賴

因?yàn)槭腔?Web 的項(xiàng)目和利用 Actuator 提供的端點(diǎn)來(lái)進(jìn)行配置,因此需要依賴:

<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)證才能夠被訪問的。因?yàn)槔锩嫔婕暗揭恍┟舾械男畔?。需要安全認(rèn)證就需要配置 Spring-Security。為了方便首先配置不需要安全權(quán)限的。

management.security.enabled=false

GET 請(qǐng)求訪問

我們可以發(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í)別

編寫日志輸出類

編寫一個(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)用訪問 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í)別

通過 /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 訪問 /loggers/com.mall.goods.zhongkui 查看當(dāng)前的日志級(jí)別:

{
 configuredLevel: "INFO",
 effectiveLevel: "INFO"
}

•再次訪問 http://localhost:8091/ 得到:需要注意的是,通過 /loggers 配置的日志級(jí)別在應(yīng)用重啟時(shí)會(huì)恢復(fù)到系統(tǒng)的配置。如果想永久的配置日志的級(jí)別還是需要通過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)。

參考

1.Configure a Logger

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI