springboot動態調整日志級別


前言:我們在調試程序時,查看日志是主要途徑之一。當項目部署到開發測試環境之后,就無法隨心所欲通過修改配置文件來修改日志級別,此時就需要動態的調整日志級別來滿足調試需求。

1.引入actuator依賴


<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
 </dependency>

2.修改application.properties

#暴露loggers這個endpoint
management.endpoints.web.exposure.include=health,info,loggers

3.查看日志信息

  • 訪問http://ip:port/actuator/loggers 可以看到當前項目每個包的日志級別,可以看到springboot的默認日志級別為info,也就是ROOT對應的日志級別
{
  "levels": [
    "OFF",
    "ERROR",
    "WARN",
    "INFO",
    "DEBUG",
    "TRACE"
  ],
  "loggers": {
    "ROOT": {
      "configuredLevel": "INFO",
      "effectiveLevel": "INFO"
    },
    "com": {
      "configuredLevel": null,
      "effectiveLevel": "INFO"
    },
    "com.yao": {
      "configuredLevel": null,
      "effectiveLevel": "INFO"
    },
    "com.yao.logdemo": {
      "configuredLevel": null,
      "effectiveLevel": "INFO"
    },
    ...
    }

4.修改日志級別

  • 修改整個項目日志級別為error

發送post請求到 http://ip:port/actuator/loggers/ROOT ,請求body為

{
    "configuredLevel":"ERROR"
}

再次查看日志信息,可以看到所有ROOT以及所有包的日志級別都變成ERROR了

{
  "levels": [
    "OFF",
    "ERROR",
    "WARN",
    "INFO",
    "DEBUG",
    "TRACE"
  ],
  "loggers": {
    "ROOT": {
      "configuredLevel": "ERROR",
      "effectiveLevel": "ERROR"
    },
    "com": {
      "configuredLevel": null,
      "effectiveLevel": "ERROR"
    },
    "com.yao": {
      "configuredLevel": null,
      "effectiveLevel": "ERROR"
    },
    "com.yao.logdemo": {
      "configuredLevel": null,
      "effectiveLevel": "ERROR"
    },
    ...
    }
  • 修改com.yao包日志級別為debug

發送post請求到 http://ip:port/actuator/loggers/com.yao ,請求body為

{
 "configuredLevel":"DEBUG"
}

再次查看日志信息,可以看到com.yao包及包含的包日志級別都變為DEBUG了

{
  "levels": [
    "OFF",
    "ERROR",
    "WARN",
    "INFO",
    "DEBUG",
    "TRACE"
  ],
  "loggers": {
    "ROOT": {
      "configuredLevel": "ERROR",
      "effectiveLevel": "ERROR"
    },
    "com": {
      "configuredLevel": null,
      "effectiveLevel": "ERROR"
    },
    "com.yao": {
      "configuredLevel": "DEBUG",
      "effectiveLevel": "DEBUG"
    },
    "com.yao.logdemo": {
      "configuredLevel": null,
      "effectiveLevel": "DEBUG"
    },
    ...
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM