Apache camel Camel EventNotifierSupport生成重复的输出

Apache camel Camel EventNotifierSupport生成重复的输出,apache-camel,Apache Camel,为了在Camel上执行性能度量和审计日志记录,AuditEventNotifier的实现如下所示。但是,每个事件都记录两次。例如,31140的消息完成事件记录两次。有人能给我一个如何解决这个问题的提示吗 路由定义 AuditEventNotifer实现 下面是制作的日志 检查通知程序bean是否未配置两次。如果用@Component注释该类,则必须在SpringXML配置中定义bean 选择一种或另一种可能性,但不能同时选择两者。因为您尚未覆盖 public boolean isEnabled

为了在Camel上执行性能度量和审计日志记录,AuditEventNotifier的实现如下所示。但是,每个事件都记录两次。例如,31140的消息完成事件记录两次。有人能给我一个如何解决这个问题的提示吗

路由定义

AuditEventNotifer实现

下面是制作的日志


检查通知程序bean是否未配置两次。如果用
@Component
注释该类,则必须在SpringXML配置中定义bean


选择一种或另一种可能性,但不能同时选择两者。

因为您尚未覆盖

public boolean isEnabled(EventObject event)
它为事件的每个状态打印消息

如果您希望消息在发送时只打印一次,请检查下面的代码块

@Component
public class AuditEventNotifer extends EventNotifierSupport {

    private static final Logger LOGGER = LoggerFactory
            .getLogger(AuditEventNotifer.class);

    @Override
    public boolean isEnabled(EventObject event) {
        return event instanceof ExchangeSentEvent;
    }
    @Override
    public void notify(EventObject event) throws Exception {

        LOGGER.info(event.toString());
    }

}

@刘易斯王:我用这个取代了我以前的答案。如果它解决了您的问题,请检查它。
15:29:12.497 [thread #0 - JmsConsumer[ticket_queue]] INFO  AuditEventNotifer:19 - exchange completed: Exchange[JmsMessage[JmsMessageID: ID:fe80:0:0:0:be30:5bff:feee:6a24%em1a48e14979b5068a0:31140]]
15:29:12.497 [thread #0 - JmsConsumer[ticket_queue]] INFO  AuditEventNotifer:19 - exchange completed: Exchange[JmsMessage[JmsMessageID: ID:fe80:0:0:0:be30:5bff:feee:6a24%em1a48e14979b5068a0:31140]]
15:29:12.497 [thread #0 - JmsConsumer[ticket_queue]] INFO  AuditEventNotifer:19 - exchange completed: Exchange[JmsMessage[JmsMessageID: ID:fe80:0:0:0:be30:5bff:feee:6a24%em1a48e14979b5068a0:31141]]
15:29:12.497 [thread #0 - JmsConsumer[ticket_queue]] INFO  AuditEventNotifer:19 - exchange completed: Exchange[JmsMessage[JmsMessageID: ID:fe80:0:0:0:be30:5bff:feee:6a24%em1a48e14979b5068a0:31141]]
15:29:12.498 [thread #0 - JmsConsumer[ticket_queue]] INFO  AuditEventNotifer:19 - exchange completed: Exchange[JmsMessage[JmsMessageID: ID:fe80:0:0:0:be30:5bff:feee:6a24%em1a48e14979b5068a0:31142]]
15:29:12.498 [thread #0 - JmsConsumer[ticket_queue]] INFO  AuditEventNotifer:19 - exchange completed: Exchange[JmsMessage[JmsMessageID: ID:fe80:0:0:0:be30:5bff:feee:6a24%em1a48e14979b5068a0:31142]]
15:29:12.498 [thread #0 - JmsConsumer[ticket_queue]] INFO  AuditEventNotifer:19 - exchange completed: Exchange[JmsMessage[JmsMessageID: ID:fe80:0:0:0:be30:5bff:feee:6a24%em1a48e14979b5068a0:31143]]
15:29:12.498 [thread #0 - JmsConsumer[ticket_queue]] INFO  AuditEventNotifer:19 - exchange completed: Exchange[JmsMessage[JmsMessageID: ID:fe80:0:0:0:be30:5bff:feee:6a24%em1a48e14979b5068a0:31143]]
public boolean isEnabled(EventObject event)
@Component
public class AuditEventNotifer extends EventNotifierSupport {

    private static final Logger LOGGER = LoggerFactory
            .getLogger(AuditEventNotifer.class);

    @Override
    public boolean isEnabled(EventObject event) {
        return event instanceof ExchangeSentEvent;
    }
    @Override
    public void notify(EventObject event) throws Exception {

        LOGGER.info(event.toString());
    }

}