在我之前与Tracer相关的问题Apache Camel Tracer | Would log level make a difference in the amout of information logged之后,我有点困惑是否应该使用自定义跟踪器或自定义事件通知程序来生成审核信息。此审计信息将帮助我们跟踪camel中的消息状态,并为客户提供状态报告。我们不希望依赖开发人员为此目的将日志放入其路线中。
我们假设我有一条路径可以读取包含多个用户记录的文件。这些记录被读取,验证,转换并通过Web服务发送到另一个系统。我们需要在流经每个节点时记录消息(或Exchange)。然后,我们将能够为客户生成状态报告,并告知他们每次转移和每个用户记录的失败或成功。将来我们还可以扩展此功能,以便在线向客户发送状态
Tracer主要是一种日志记录机制,还公开了可以通过JMX控制台控制的MBean。事件通知程序会抓住'可以采取不同的事件,然后采取适当的行动(在这种情况下记录)。事件通知程序的一个优点是,将来我可以合并其他功能,例如在失败时向支持团队发送电子邮件。
所以,问题是2中哪一个更适合这种目的。很少有决定参数可以是:
对业绩的影响(在生产中)
易于维护
未来增强
通过JMX控制台进行管理
加上可用于实现此用例的任何其他方法。