Spring integration 为Spring中的日志记录向有线抽头通道添加附加信息

Spring integration 为Spring中的日志记录向有线抽头通道添加附加信息,spring-integration,Spring Integration,我使用Wire-Tap来处理日志记录,不允许使用日志通道适配器log4j 我需要向有效负载添加额外的信息,这些信息被发送到具有处理日志的接口的网关 有没有一种在流中间指定页眉的方法?< /P> 澄清代码: 电线抽头部分 <int:channel id="IN_messageRouterFactory"> <int:interceptors> <int:wire-tap channel="IN_log_gateway" /> &l

我使用Wire-Tap来处理日志记录,不允许使用日志通道适配器log4j

我需要向有效负载添加额外的信息,这些信息被发送到具有处理日志的接口的网关

有没有一种在流中间指定页眉的方法?< /P> 澄清代码:

电线抽头部分

<int:channel id="IN_messageRouterFactory">
    <int:interceptors>
        <int:wire-tap channel="IN_log_gateway" />
    </int:interceptors>
</int:channel>
日志网关:

<int:gateway service-interface="foo.bar.loginterface">
    <int:method name="log" request-channel="IN_log_gateway" />
</int:gateway>
日志记录服务:

<int:chain input-channel="IN_log_gateway">
        <!-- transformations here... -->
    <int:service-activator ref="fileLoggerService"/>
</int:chain>

我想添加一些信息,以便我可以从较大的高度记录特定的托管有效负载信息,但不清楚您要求的是什么。但无论如何,任何POJO服务都可以接受消息作为参数。因此,您可以使用任何信息负载和头来执行任何逻辑

从这里我看不出有什么理由,因为WireTap是一个单向组件,所以您的自定义记录器不应该返回任何结果

更新

谢谢你的解释

看起来使用一些消息enrichement(如您所说的header enricher)更好,因为您确实有一个消息范围逻辑

当然,您可以通过wire tap克服这一问题,但您必须有一个聚合器来关联和分组请求及其回复。再说一次:没有页眉润色器,你无法做到这一点


顺便说一句,您甚至可以将请求消息存储在标题中,并在最后一个标题中使用它来获得正确的业务逻辑。

您好,感谢您的回答,如果我的问题有点混乱,请原谅。我将尝试一个例子:我想记录一个具有转换器和服务激活器+错误检查路由器的链的开始和结束。该链具有逻辑意义:假设该链的目的是向web服务请求一个数字。因此,我正在寻找的是一种方法,通过线连接点击链的输入和输出通道,在不指定任何其他组件(如标题)的情况下添加链+链结果失败或成功的逻辑目的。根据您的评论,在答案中添加了更多信息我正在与同事讨论这一点,同时:谢谢!:他们说我还有其他任务要解决,所以他们接管了我的这项功能,告诉我他们用SpringAOP解决了问题,记录了包装功能的函数,我希望我做对了。。。我对AOP还是新手。。。谢谢如果你达到了预期的效果,那也很好。不管怎样,如果我的答案是相关的,让我们接受它来完成讨论。