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