2012-02-15 102 views
4

我们想用一个异常处理程序向mule添加几行XML配置,这个异常处理程序记录到SLF4J而不是他们现在记录的地方(标准输出)。我们如何添加这个?如何在Mule中添加一个全局异常处理程序/记录器

我们不希望将此处理程序添加到每个单一流(50+流,加上人们添加流程时,他们可能会忘记添加我们的异常处理程序)。

+1

骡子记录经过的Log4J不能直接输出到标准输出。你有没有试过关闭控制台appender? – 2012-02-15 16:18:32

+0

嗯,谢谢,让我重新运行,然后重新测试...也许我的slf4j配置是错误的(在log4j适配器上使用logback)。 – 2012-02-15 19:11:59

+1

你的问题仍然有效:“如何跨流程共享异常处理程序”是一个有趣的问题:) – 2012-02-15 23:28:33

回答

2

这是一个例子“如何分担流动的共同异常处理程序”(在这种情况下,一个包罗万象的异常策略):

<catch-exception-strategy name="myGlobalCatchStrategy"> 
    <set-payload value="Hey something happened! : #[exception.getSummaryMessage()]" /> 
</catch-exception-strategy> 

<configuration defaultExceptionStrategy-ref="myGlobalCatchStrategy" /> 

<flow name="global-catch-example"> 

    <inbound-endpoint address="vm://entry-point.in" exchange-pattern="request-response" /> 

    <test:component throwException="true" /> 

</flow> 
+0

不用担心,我们在生产力研究显示POJO的开发速度快于使用mule作为调试xml而不是仅仅使用调试器进行调试被证明速度较慢。我们创造了一些我们的项目需要的实际例子,骡子花了6倍的时间。 – 2012-11-13 19:27:59

+0

在12月秋季的Mule峰会上,Mulesoft展示了即将推出的Mule Studio的可视化调试器。它可能会改变你的想法在未来(或不)。 也可以使用Java或Scala DSL的大多数集成框架,这可以使您的调试变得更容易。 – 2012-11-14 11:19:30