Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • KnowledgePlanet
  • docdoc
  • Issue
  • #24

doc
doc
  • 项目概览

KnowledgePlanet / doc

通知 1303
Star 822
Fork 117
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 42
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 0
  • DevOps
    • 流水线
    • 流水线任务
    • 计划
  • Wiki 2
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
doc
doc
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 42
    • Issue 42
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 0
    • 合并请求 0
  • Pages
  • DevOps
    • DevOps
    • 流水线
    • 流水线任务
    • 计划
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 2
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 流水线任务
  • 提交
  • Issue看板
You need to sign in or sign up before continuing.
已关闭
开放中
Opened 7月 26, 2023 by 小傅哥@Yao__Shun__Yu⛹Owner

springcloud系统中使用了多个不同的日志框架,怎么动态调整日志级别呢?

在Spring Cloud系统中使用多个不同的日志框架,可以通过Spring Cloud Config Server和Spring Cloud Bus配合实现动态调整日志级别。

具体步骤如下:

  1. 在Spring Cloud Config Server中配置日志级别:在Config Server的配置文件中,添加以下配置:

    logging:
      level:
        com.example.service1: DEBUG
        com.example.service2: INFO

    其中,com.example.service1和com.example.service2是两个服务的包名,DEBUG和INFO是对应的日志级别。

  2. 在Spring Cloud Bus中配置消息代理:在Spring Cloud Bus的配置文件中,添加以下配置:

    spring:
      cloud:
        bus:
          enabled: true
          refresh:
            enabled: true
          trace:
            enabled: true
      rabbitmq:
        host: localhost
        port: 5672
        username: guest
        password: guest

    其中,enabled表示开启Spring Cloud Bus,refresh.enabled表示开启配置文件的刷新功能,trace.enabled表示开启消息跟踪功能,rabbitmq表示使用RabbitMQ作为消息代理。

  3. 在服务中添加Spring Cloud Bus的依赖:在服务的pom.xml文件中,添加以下依赖:

    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>

    这个依赖会自动配置Spring Cloud Bus,使得服务能够接收到Config Server发送的消息。

  4. 在服务中添加Actuator端点:在服务的pom.xml文件中,添加以下依赖:

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

    然后,在服务的配置文件中添加以下配置:

    management:
      endpoints:
        web:
          exposure:
            include: bus-refresh

    这个配置会添加一个名为/actuator/bus-refresh的端点,用于接收Config Server发送的刷新命令。

  5. 在服务中添加动态调整日志级别的接口:在服务中添加一个接口,用于接收Config Server发送的刷新命令,并动态调整日志级别。这个接口的实现可以参考下面的示例代码:

    @RestController
    public class LoggingController {
    
        @Autowired
        private LoggingSystem loggingSystem;
    
        @PostMapping("/logging")
        public void setLogLevel(@RequestBody Map<String, String> params) {
            String loggerName = params.get("logger");
            String levelName = params.get("level");
            LogLevel level = LogLevel.valueOf(levelName.toUpperCase());
            loggingSystem.setLogLevel(loggerName, level);
        }
    }

    这个接口接收一个JSON格式的请求体,包含两个参数:logger和level。logger表示要调整日志级别的Logger的名称,level表示要设置的日志级别。

  6. 使用Postman或者其他工具发送请求:使用Postman或者其他工具发送一个HTTP POST请求,请求的URL为http://localhost:8080/logging,请求体为以下JSON格式:

    {
      "logger": "com.example.service1",
      "level": "DEBUG"
    }

    这个请求会将com.example.service1的日志级别设置为DEBUG。

以上就是动态调整日志级别的步骤,您可以根据具体情况进行配置。需要注意的是,这种方法只能用于Spring Boot 2.x及以上版本。如果您使用的是Spring Boot 1.x版本,可以考虑使用logback或者log4j的JMX功能实现动态调整日志级别。

指派人
分配到
无
里程碑
无
分配里程碑
工时统计
无
截止日期
无
标识: KnowledgePlanet/doc#24
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7