操作符 log()

为了方便,为了记录消息通过 Spring Integration 流程(<logging-channel-adapter>),提供了一个 log() 运算符。在内部,它由 WireTap ChannelInterceptor 表示,其订阅者为 LoggingHandler。它负责将传入消息记录到下一个端点或当前通道。以下示例演示如何使用 LoggingHandler

.filter(...)
.log(LoggingHandler.Level.ERROR, "test.category", m -> m.getHeaders().getId())
.route(...)

在前面的示例中,一个 id 头以 ERROR 级别记录到 test.category,仅适用于通过筛选器且在路由之前的消息。

从版本 6.0 开始,此运算符在流程末尾的行为与其在中间的使用方式保持一致。换句话说,即使删除了 log() 运算符,流程的行为也保持不变。因此,如果预计在流程末尾不会产生答复,建议在最后一个 log() 之后使用 nullChannel()