痛点

日常工作,项目维护过程中,偶尔会遇到项目不能随意停止,但是需要调整日志级别排查问题的情况,于是找到了一个方式,动态调整日志级别。(虽然但是,仍需要提前在项目开发时,提前引入需要的依赖)

1、pom.xml中引入actuator依赖

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

2、修改application.properties

这是为了暴露loggers这个endpoint,我这里写的是* ,也可以根据情况自己写,比如:health,info,loggers

management.endpoints.web.exposure.include=*

3、查看日志信息

用GET请求访问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.example": {
            "configuredLevel": null,
            "effectiveLevel": "INFO"
        },
        "com.example.demo": {
            "configuredLevel": null,
            "effectiveLevel": "INFO"
        },
        "org.apache.coyote": {
            "configuredLevel": null,
            "effectiveLevel": "INFO"
        }
     ········
    }
}

4、修改日志级别

发送POST请求到http://[ip]:[port]/actuator/loggers/[包路径]

例如:

①修改整个项目日志级别为warn,则

http://[ip]:[port]/actuator/loggers/root

②修改com.example包下的日志级别为warn,则

http://[ip]:[port]/actuator/loggers/com.example

请求参数如下:

{
    "configuredLevel":"warn"
}

springboot2.0 动态调整日志级别完成。