Routes apache camel如何记录路由进度

Routes apache camel如何记录路由进度,routes,apache-camel,Routes,Apache Camel,当异常发生在路由中且未被异常管理器捕获时,将显示路由的详细信息,这有助于了解可能出现的错误 当捕获并管理异常时,如何能够拥有相同类型的日志 我更喜欢java部分的“可调用”功能,例如在处理器中,但dsl风格的功能也可以 路由日志记录通常如下所示: Message History --------------------------------------------------------------------------------------------------------------

当异常发生在路由中且未被异常管理器捕获时,将显示路由的详细信息,这有助于了解可能出现的错误

当捕获并管理异常时,如何能够拥有相同类型的日志

我更喜欢java部分的“可调用”功能,例如在处理器中,但dsl风格的功能也可以

路由日志记录通常如下所示:

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)