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