动态修改SpringBoot日志输出级别

引入actuator监控组件

  1. Pom.xml引入插件

    1
    2
    3
    4
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
  1. application.yml配置acturator

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #管理端点
    management:
    endpoint:
    shutdown:
    enabled: true
    endpoints:
    web:
    base-path: /actuator
    exposure:
    #include: "*" #loggers
    include: #节点
    - info #信息 获取的是application.yml中的info节点的信息,如info.app.name=xxx
    - health #健康
    - loggers #日志
    - mappings #controller层请求映射
    - beans #spring容器中的bean
    - env #环境变量
    - shutdown #停止服务

查看当前日志级别

  • 访问地址: http://${ip}:${port}/${projectName}/actuator/loggers/${packageName}

    • ${ip}: 工程ip地址

    • ${port}: 工程访问端口

    • ${projectName}: 工程名

    • ${packageName}: 需要改变日志级别包的的名称

      例如:cn.ac.ict.xmkt.basecn.ac.ict.xmkt.xmsb

  • 请求方法:GET

  • 返回值:

    1
    2
    3
    {
    "effectiveLevel": "DEBUG" //当前日志级别
    }

修改日志级别

  • 访问地址:http://${ip}:${port}/${projectName}/actuator/loggers/${packageName}

  • 请求方法:POST

  • 请求体:

    1
    2
    3
    {
    "configuredLevel": "INFO" //日志级别 INFO、DEBUG、WARN
    }
  • 返回体:

    1
    1 //修改成功

验证日志修改输出级别是否成功:

  • 访问地址:http://${ip}:${port}/${projectName}/actuator/loggers/${packageName}

  • 请求方法:GET

  • 返回体:

    1
    2
    3
    4
    {
    "configuredLevel": "INFO", //设置的日志级别
    "effectiveLevel": "INFO" //当前日志级别
    }