spring-integration - 如何在Spring Integration中使用logging-channel-adapter记录消息 header 值

标签 spring-integration spring-el

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

Value of header foo_bar: baz



如何使用窃听和日志记录 channel 适配器进行此操作?

最佳答案

使用logging-channel-adapter的expression属性,并设置如下所示的窃听和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属性时,根对象是spring集成消息。因此,表达式中的“ header ”会为您提供消息的 header 映射。

关于spring-integration - 如何在Spring Integration中使用logging-channel-adapter记录消息 header 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5458237/

相关文章:

java - Spring Integration 手动发布消息到 channel

Spring集成并发-检测完成

java - 如何通过Spring Integration连接SOAP服务器和JSON客户端?

java - 具有非 Spring 客户端的 Spring Integration TCP 入站/出站适配器

Java:将字符串转换为 double\long,除以 100 并将其转换回字符串(SpEL)

java - 创建 native 线程时出现 OutOfMemoryError

java - Spring @Value - 有没有办法分配默认的空 map ?

spring - @Qualifier 中的 SpEL 引用同一个 bean

spring - Thymeleaf 和 #fields.hasErrors

spring - Spring表达式中冒号后面的部分表示什么?