Spring Boot 日志处理 - 动态级别修改

一 前言

有时线上问题我们用打日志的方式来观察错误或埋点参数,但由于这些日志如果都打出来会占用大量存储空间而且覆盖了一些有效信息,所以线上级别一般设置INFO,调试级别用作特殊情况下。此时如果线上想查看调试级别下的日志,又不能更改日志级别后重新发布该怎么办?

Spring Boot提供了日志级别动态配置功能,为我们的线上应用调试提供了很好的机制。在实际使用中需要结合Spring-Security提供的安全机制来保护Actuator 提供的各种系统级端点的安全访问。

SpringBoot从版本 1.5.1 之后就提供了基于 ==spring-boot-starter-actuator ==的端点 /loggers。通过该端点可以实现查看系统的 package-path 的日志级别,以及针对特定的 package-path 配置运行中的应用的日志级别的功能。

下面对动态调整日志的级别进行设置。

二 Spring Boot 依赖与配置

maven中引入依赖

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

Actuator 配置

management:
  endpoints:
    web:
      exposure:
        include: loggers

初始化配置日志级别

可选日志级别: OFF ERROR WARN INFO DEBUG TRACE

设置全局日志级别

logging:
	level:
		root: INFO

设置特定 Package/Class 日志级别

logging.level.<Package/Class>=INFO

示例 : logging.level.com.cncloud.cncloud.admin.controller.GenTestController=info

三 运行时配置日志级别(测试案例)

申明测试案例:

@GetMapping("/testLogLevel")
	@Inner(value = false)
	public void testLogLevel(){
		log.info("Logger Level :INFO");
		log.debug("Logger Level :DEBUG");
		log.error("Logger Level :ERROR");
	}

查看所有 package / class 日志级别的配置

http://127.0.0.1:4000/actuator/loggers (当前服务运行端口/actuator/loggers)

在这里插入图片描述
查看单个 package / class 日志级别的配置

用法:
	curl http://127.0.0.1:4000/actuator/loggers/<Package/Class>

在这里插入图片描述

查看测试案例日志输出

在这里插入图片描述
输出结果:
在这里插入图片描述
动态修改日志级别

 #用法
curl -X POST \
  http://localhost:4000/actuator/loggers/<Package/Class> \
  -d '{"configuredLevel":"<LEVEL>"}'

运行测试

在这里插入图片描述
在这里插入图片描述
由此我们便可以动态的修改线上日志运行级别了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值