gpt4 book ai didi

java - 在 Spring Integration 中使用拦截器发送日志消息

转载 作者:行者123 更新时间:2023-12-01 14:52:39 25 4
gpt4 key购买 nike

是否可以在 Spring Integration 中配置拦截器来指定日志消息?

这与使用窃听将消息发送到日志记录 channel 适配器订阅的日志记录 channel 形成对比。这种方法的问题在于日志记录 channel 具有精确记录内容的表达式。在我的用例中,我想使用全局 channel 拦截器来指定日志记录消息并将其发送到日志记录 channel 适配器,而不必为我可能想要的每个可能的日志记录消息定义一个日志记录 channel 适配器。

有一段时间,我认为我可以使用 SpEL 表达式定义一个服务激活器,以在 channel 拦截器定义内生成字符串日志消息(以及 deisred 日志 channel 的输出 channel ),但它正在寻找输入- channel 。

最佳答案

您可以创建您感兴趣的 channel <publish-subscribe-channel/>,而不是使用窃听。 s。

将适当的转换器订阅到 channel (使用 output-channel 发送到日志记录适配器)。

您可以使用 order 控制日志是在真实订阅者之前还是之后发生。变压器和其他订阅者的属性。

另一种选择是全局拦截器,它向消息添加 header

MessageBuilder.fromMessage(message).setHeader('foo', routeForThisMessageType).build()

然后将其发送至<header-value-router/>依次路由到适当的变压器,然后路由到单个日志记录 channel 适配器。

当然,如果您愿意,您可以将路由和/或转换直接组合到拦截器中。

关于java - 在 Spring Integration 中使用拦截器发送日志消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com