我们的邮件正文(XML)包含我们不想记录的敏感信息。记录过滤后的邮件正文的最佳方法是什么?我正在使用Java DSL定义我的路由,并希望使用log DSL。
非常感谢你 优素福
答案 0 :(得分:2)
如果您想坚持使用CamelLogProcessor(因为此处理器是在日志DSL的引擎下调用的),那么可以编写自己的自定义ExchangeFormatter并将其注入记录器。 Documentation可能有用。
虽然提到的处理器没有什么特别的(但通常是完全足够的):
public boolean process(Exchange exchange, AsyncCallback callback) {
if (log.shouldLog()) {
log.log(formatter.format(exchange));
}
callback.done(true);
return true;
}
在这种情况下,最好编写自己的处理器并路由到它而不是记录模式(如果你必须使用漂亮的DSL然后编写自己的组件,但我不认为这是你真正想要的) 。如果您已决定路由到您自己的处理器实现,那么您可以以您喜欢的方式记录您想要记录的任何内容(例如省略敏感信息)。
Camel用于日志记录的通用处理器是通用的:),因此在两种情况下,项目特定的实现对我都很有效:敏感信息或限制日志记录时间。