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

发布于 2024-10-27 17:07:36 字数 142 浏览 5 评论 0原文

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

标头 foo_bar 的值:baz

如何使用窃听器和日志记录通道适配器执行此操作?

I need to log the value of the message header with key "foo_bar" so that the log message looks something like this when the value of that header is "baz":

Value of header foo_bar: baz

How to do this with a wire-tap and logging-channel-adapter?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挽袖吟 2024-11-03 17:07:36

使用logging-channel-adapter的表达式属性并设置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"
/>

当使用表达式属性时,根对象是spring集成消息。因此表达式中的“headers”可以让您获得消息的标题映射。

Use the expression attribute of the logging-channel-adapter and set up the wire-tap and logging-channel-adapter something like this:

<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"
/>

When using the expression attribute, the root object is the spring integration message. So "headers" in the expression gets you the headers map of the message.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文