2014-09-23 101 views
3

当路线中发生异常且未被异常管理器捕获时,会显示路线的详细信息,这有助于了解可能出现的问题。apache camel如何记录路线进度

当异常被捕获和管理时,怎么可能拥有相同类型的日志?

我宁愿从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   ] [[email protected]         ] [   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提前,

弗朗索瓦

+0

'名单列表= exchange.getProperty(Exchange.MESSAGE_HISTORY,List.class);' – 2014-09-23 16:14:08

回答

0

代码挖后,我发现org.apache。 camel.util.MessageHelper#dumpMessageHistoryStacktrace应该做我想做的事情。

3

这是消息历史EIP模式

关于这一点,页面细节,以及如何可以自行访问历史。骆驼用它自己输出你在上面看到的表格,这个org.apache.camel.util.MessageHelper#dumpMessageHistoryStacktrace

但随着康斯坦丁上面写的,你从Java代码访问历史记录如下

List<MessageHistory> list = exchange.getProperty(Exchange.MESSAGE_HISTORY, List.class);