springboot2.X動態修改log4j2日志級別


利用springboot提供的 spring-boot-starter-actuator 包可以實現動態修改log4j2日志級別的功能

添加依賴

添加依賴包

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

修改配置

修改springboot配置文件application.yml,添加如下配置

management:
  endpoints:
    web:
      exposure:
        include: 'loggers'

查詢日志級別

利用postman GET請求地址 http://localhost:8080/ecs-exporter/actuator/loggers
得到結果

{
    "levels": [
        "OFF",
        "FATAL",
        "ERROR",
        "WARN",
        "INFO",
        "DEBUG",
        "TRACE"
    ],
    "loggers": {
        "ROOT": {
            "configuredLevel": "INFO",
            "effectiveLevel": "INFO"
        },
        "com": {
            "configuredLevel": "DEBUG",
            "effectiveLevel": "DEBUG"
        }
    }
}

從上面結果中可以看到每個包對應的日志級別,查看指定包對應日志級別可以在url后面拼接對應的包全路徑
如:http://localhost:8080/ecs-exporter/actuator/loggers/com

{
    "configuredLevel": "DEBUG",
    "effectiveLevel": "DEBUG"
}

修改

ROOT級別不可動態修改,可以修改每個包的日志級別
利用postman POST請求地址 http://localhost:8080/ecs-exporter/actuator/loggers/對應包
請求體

{
    "configuredLevel": "info"
}

再次查看日志級別,已經變更

{
    "levels": [
        "OFF",
        "FATAL",
        "ERROR",
        "WARN",
        "INFO",
        "DEBUG",
        "TRACE"
    ],
    "loggers": {
        "ROOT": {
            "configuredLevel": "INFO",
            "effectiveLevel": "INFO"
        },
        "com": {
            "configuredLevel": "INFO",
            "effectiveLevel": "INFO"
        }
    }
}

對應log4j.yml配置

  loggers:
    logger:
      - # 以com開頭的logger
        name: com
        level: info
        additivity: false
        appenderRef:
          - ref: default_console # 將日志信息輸出到控制台
            
    root:
      level: info
      additivity: false
      appenderRef:
        - ref: default_console 
       


免責聲明!

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



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