运算符 log()
为了方便起见,记录消息在 Spring Integration 流 (<logging-channel-adapter>
) 中的旅程,提供了一个 log()
操作符。内部实现上,它由带有 LoggingHandler
订阅者的 WireTap
ChannelInterceptor
表示。它负责将传入的消息记录到下一个端点或当前通道。以下示例展示了如何使用 LoggingHandler
:
.filter(...)
.log(LoggingHandler.Level.ERROR, "test.category", m -> m.getHeaders().getId())
.route(...)
在前面的例子中,仅对于通过过滤器的消息,在路由之前,以 ERROR
级别将 id
标头记录到 test.category
。
从 6.0 版本开始,此操作符在流程末尾的行为与其在中间的使用行为保持一致。换句话说,即使移除了 log()
操作符,流程的行为仍然保持不变。因此,如果在流程末尾不期望产生回复,则建议在最后一个 log()
之后使用 nullChannel()
。