Routes apache camel如何记录路由进度
当异常发生在路由中且未被异常管理器捕获时,将显示路由的详细信息,这有助于了解可能出现的错误 当捕获并管理异常时,如何能够拥有相同类型的日志 我更喜欢java部分的“可调用”功能,例如在处理器中,但dsl风格的功能也可以 路由日志记录通常如下所示:Routes apache camel如何记录路由进度,routes,apache-camel,Routes,Apache Camel,当异常发生在路由中且未被异常管理器捕获时,将显示路由的详细信息,这有助于了解可能出现的错误 当捕获并管理异常时,如何能够拥有相同类型的日志 我更喜欢java部分的“可调用”功能,例如在处理器中,但dsl风格的功能也可以 路由日志记录通常如下所示: Message History --------------------------------------------------------------------------------------------------------------
Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId ProcessorId Processor Elapsed (ms)
[route1 ] [cxf_process ] [cxfrs://bean:myServer?bindingStyle=SimpleConsumer ] [ 60029]
[route1 ] [to55 ] [direct:validateAndRedirect ] [ 60029]
[route27 ] [setProperty37 ] [setProperty[operationName] ] [ 0]
[route27 ] [setProperty38 ] [setProperty[Country] ] [ 0]
[route27 ] [setProperty39 ] [setProperty[Language] ] [ 0]
[route27 ] [process25 ] [my.package.ExtractUserMailProcessor@535f9aac ] [ 0]
[route27 ] [enrich25 ] [enrich[direct:checkAccess] ] [ 0]
[route27 ] [recipientList1 ] [recipientList[simple{Simple: direct:${property.operationName}}] ] [ 60029]
[route28 ] [setHeader84 ] [setHeader[CamelCxfRsUsingHttpAPI] ] [ 0]
[route28 ] [setHeader85 ] [setHeader[CamelHttpPath] ] [ 0]
[route28 ] [setHeader86 ] [setHeader[CamelHttpMethod] ] [ 1]
[route28 ] [setHeader87 ] [setHeader[Content-Type] ] [ 0]
[route28 ] [enrich9 ] [enrich[direct:wsClient] ] [ 60029]
[route7 ] [to7 ] [cxfrs:bean:myClient ] [ 60027]
Exchange
---------------------------------------------------------------------------------------------------------------------------------------
Thx提前
François在深入挖掘代码后,我找到了org.apache.camel.util.MessageHelper#dumpMessageHistoryStacktrace,它应该执行我想要的操作。这是消息历史EIP模式
org.apache.camel.util.MessageHelper#dumpMessageHistoryStacktrace
是camel用来输出您上面看到的表的
但是正如Konstantin在上面所写的,您可以通过Java代码访问历史记录,如下所示
List<MessageHistory> list = exchange.getProperty(Exchange.MESSAGE_HISTORY, List.class);
List List=exchange.getProperty(exchange.MESSAGE\u历史,List.class);
List List=exchange.getProperty(exchange.MESSAGE\u HISTORY,List.class)代码>