如何在Spring Integration中使用logging-channel-adapter来记录消息头值

时间:2011-03-28 11:21:59

标签: spring-integration spring-el

我需要使用键“foo_bar”记录消息头的值,以便当该头的值为“baz”时,日志消息看起来像这样:

  

标题foo_bar的值:baz

如何使用wire-tap和logging-channel-adapter进行此操作?

1 个答案:

答案 0 :(得分:13)

使用logging-channel-adapter的expression属性并设置wire-tap和logging-channel-adapter,如下所示:

<integration:channel id="channel1">
    <integration:interceptors>
        <integration:wire-tap channel="loggingChannel1"/>
    </integration:interceptors>
</integration:channel>
<integration:logging-channel-adapter 
    id="loggingChannel1" 
    expression="'Value of header foo_bar: '.concat(headers.foo_bar)" 
    level="DEBUG"
/>

使用expression属性时,root对象是spring integration消息。因此表达式中的“标题”会为您提供消息的标题映射。