【问题标题】:Changing Camel Log level at runtime using Spring Boot Actuator使用 Spring Boot Actuator 在运行时更改 Camel 日志级别
【发布时间】:2021-02-24 18:59:03
【问题描述】:

我使用 Camel 创建了一个 Spring Boot 应用程序。在一条路线中,我使用 Log 组件如下:

        from("direct:start")
            .log(LoggingLevel.DEBUG, "com.somepackage","Request: ${body}")
            .process(myProcessor)
            .log(LoggingLevel.DEBUG, "com.somepackage","Response: ${body}");

在我的 application.yml 中,我设置了如下日志记录:

 logging:
  level:
    com.somepackage: INFO

当我启动应用程序时,由于它的级别较低,因此不会发生日志记录。使用 Spring Boot Actuator 更改级别:

 (POST)   /actuator/loggers/com.somepackage
Request:
{
    "configuredLevel": "DEBUG"
}

然后验证更改:

     (GET)   /actuator/loggers/com.somepackage
Response:
    {
        "configuredLevel": "DEBUG",
        "effectiveLevel": "DEBUG"
    }

但是日志仍然没有发生。即使级别设置为 TRACE 也不会发生。 但是,如果我将应用程序文件中的日志记录级别设置为 DEBUG,然后编译/运行应用程序,则会发生该 Log 组件的日志记录并且它是响应式的。我可以使用 Actuator 将级别设置为更高以排除或降低以包含。

Spring Boot 的标准日志记录会响应来自执行器的日志级别更改,无论应用程序文件中设置的级别是什么,但 Camel Log 组件只有在 Log 组件中设置的级别等于时才会响应或在启动时更高。有人对此有想法或解决方案吗?

【问题讨论】:

    标签: java spring-boot apache-camel


    【解决方案1】:

    我遇到了同样的错误并尝试了其他几个骆驼版本。 camel 3.5.0 及以下版本对我有用。

    编辑: 我开了一个bugticket https://issues.apache.org/jira/browse/CAMEL-16705 将在 3.11.0 版本中修复

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 2019-01-11
      • 2016-02-23
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多