Operator log()

为了方便起见,要记录消息在 Spring Integration 流(``)中的历程,提供了一个 `log()` operator。在内部,它由一个 `WireTap` `ChannelInterceptor` 表示,其中 `LoggingHandler` 作为其订阅者。它负责将入站消息记录到下一个端点或当前通道。以下示例展示了如何使用 `LoggingHandler`

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

在前面的示例中,仅对通过过滤器且在路由之前的消息,将 id 消息头以 `ERROR` 级别记录到 `test.category` 中。

从版本 6.0 开始,此 operator 在流末尾的行为与其在流中间的使用方式一致。换句话说,即使移除 `log()` operator,流的行为也保持不变。因此,如果流的末尾不需要产生回复,建议在最后一个 `log()` 之后使用 `nullChannel()`。