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