【发布时间】: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