首先要求springboot 版本为1.5.x之上。2.x未试验过
下面我们就来看看Spring Boot 1.5.x中引入的一个新的控制端点:/loggers
,该端点将为我们提供动态修改Spring Boot应用日志级别的强大功能。该功能的使用非常简单,它依然延续了Spring Boot自动化配置的实现。
首先导入依赖 actuator
org.springframework.boot
spring-boot-actuator
1.5.12.RELEASE
然后你需要构建一个springboot 应用 如果不会可见文章https://blog.csdn.net/java_ying/article/details/79657193
在application.propertie添加如下配置
management.security.enabled=false
不添加访问会报401错误
添加测试接口
package com.hqjl.classcard.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* @author chunying
* @Date: 2019/7/18 0018
*/
@RestController
public class LogBackController {
private Logger log = LoggerFactory.getLogger(LogBackController.class);
@RequestMapping(value = "/logback")
public String logj(){
log.error("我是error");
log.warn("我是warn");
log.info("我是info");
log.debug("我是debug");
return "success";
}
}
使用logback来控制我们的日志,reource下添加logback.xml
%date{HH:mm:ss} %5level [%thread] [%logger{36}:%line] %msg%n
%date{HH:mm:ss} %-5level [%thread] [%logger{5}:%line] %msg%n
${LOG_HOME}/%d{yyyy-MM-dd}/${PROJECT_NAME}_%i.log
10MB
90
20GB
<--这里控制默认输出级别为warn-->
这里的ip:port 为你部署的ip和端口 如果放到测试机器 就是域名 如果是springboot直接启动 还要加上项目包名或application.properties 的serv名称 具体情况具体对待
启动springboot 访问 ip:port/logback
打印
我是error
我是warn
这里其实有默认的方法
ip:port/loggers 这是个get方法
{
"levels": [
"OFF",
"ERROR",
"WARN",
"INFO",
"DEBUG",
"TRACE"
],
"loggers": {
"ROOT": {
"configuredLevel": "WARN",
"effectiveLevel": "WARN"
},
"com": {
"configuredLevel": null,
"effectiveLevel": "WARN"
},
"com.alibaba": {
"configuredLevel": null,
"effectiveLevel": "WARN"
},
"com.alibaba.dubbo": {
"configuredLevel": "WARN",
"effectiveLevel": "WARN"
},
"com.alibaba.dubbo.common": {
"configuredLevel": null,
"effectiveLevel": "WARN"
},
xxxxx
后面还有 就没有全部复制 这里需要自己搜索 包名看当前日志的输出级别
重点来了
更改日志输出级别
把上面的get方法变成post方法
ip:port/loggers/com.example (这里是要修改的具体包名,我只是举例)
参数
{
"configuredLevel": "DEBUG"
}
发送请求 如果为200 基本就是成功了
回去在访问接口 发现就是修改后的级别啦。
ps:我暂时没有发现修改具体类的方法,发现了会补上
2019/07/19 补上修改类的 只要在包后面继续 . 类名就可以了 比如: com.baidu.demo.Application(类名)
2019/12/13 发现新大陆
1.5.x版本也可以单独控制每个
endpoints的访问权限 通过
endpoints.loggers.sensitive=false 修改loggers的名称就可以啦
可以把management那个配置去掉 那个控制范围太大了 不利于使用
详情见:https://blog.csdn.net/java_ying/article/details/103562286