2014-09-23 45 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);