我正在使用 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&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 ,它有一个注入的 CamelLogger ,它有一个 NOPLogger 注入。这意味着根本没有记录任何内容。
阅读完文档后,我不确定是否需要实现特定的错误处理程序和相关的 onException 处理,或者我是否应该只使用日志组件,或者像上面那样混合使用两者?
感激地接受任何指导。
非常感谢