Operator 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()
。