我的应用程序上有几个不同的集成流,目前它们基于 cron 运行,它们是从我的 MessagingGateway 实例化的,所以我在我的流运行时发送一个名为"executionId"的标头,所以我想要记录"运行"所做的所有活动。
关于如何从我的流中捕获每个日志的任何想法? 例如日志,例如
"file x has been successfully transferred"
"Cannot delete local file x. The local file may be busy in some other process."
我需要消息处理器/处理程序上已有的相同日志输出,有没有办法捕获它们并根据消息标头上的我的 executionId 将其写入数据库?
目前,我正在各地和SuccessChannel上添加.log建议,但我认为应该有更好的方法
出于全局目的,您可以使用具有@GlobalChannelInterceptor
和特定通道名称/模式配置的WireTap
Bean。本质上,log()
做完全相同wireTap
,但特别是在特定的地方。使用@GlobalChannelInterceptor
,您可以将这样的WireTap
添加到 Bean 名称与配置匹配的所有通道中。
在参考手册中查看更多信息:
https://docs.spring.io/spring-integration/docs/5.2.0.BUILD-SNAPSHOT/reference/html/dsl.html#java-dsl-log https://docs.spring.io/spring-integration/docs/5.2.0.BUILD-SNAPSHOT/reference/html/core.html#channel-interceptors