Camel Exceptions未被记录

时间:2013-07-03 11:41:18

标签: spring apache-camel log4

我使用的是Camel 2.10.2,我有以下配置:

<camelContext id="camelContext" trace="true" xmlns="http://camel.apache.org/schema/spring">

    <errorHandler type="LoggingErrorHandler" level="INFO" logName="my.logger" id="webserviceLoggingHandler"/>

    <route id="webService" errorHandlerRef="webserviceLoggingHandler">
        <from uri="direct:webService" />
        <to uri="spring-ws:{{webservice.url}}?messageFactory=#messageFactory&amp;messageSender=#messageSender" />
        <onException>
            <exception>java.lang.Exception</exception>
            <to uri="log:my.logger?level=INFO"/>
        </onException>
    </route>
    <route id="validate">
        <from uri="activemq:validate" />
        <to uri="direct:webService" />
    </route>
</camelContext>

我希望这会记录到控制台。相反,我发现的是异常(例如像证书错误这样的IOExceptions)正在消耗,我真的需要记录它们。

调试代码我可以看到正在使用SpringDefaultErrorHandler,这是委托给LoggingExceptionHandler,它有一个注入了注入NOPLogger的CamelLogger。这意味着根本没有记录任何内容。

在阅读完文档之后,我不确定是否需要实现特定的错误处理程序和相关的onException处理,或者我应该只使用日志组件,还是我上面的两个组合?

感激地收到任何指导。

非常感谢

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题。我的骆驼设置很好。我们最近从Camel 2.6.0升级到2.10.2。阅读骆驼文档我发现从camel 2.7 slf4j用于记录而不是公共记录。我已经有了log4j和slf4j jar,但是缺少了slf4j-log4j绑定jar。这是导致所有日志记录转到NOPLogger的原因。一旦我将罐子放入其中,一切正常。

由于