我有以下路线:
onException(Exception.class)
.logExhausted(true)
.logStackTrace(true)
.logExhaustedMessageHistory(true)
.process(new MyErrorProcessor());
from(uri)
.process(new MyProcessor());
发生错误时,日志将打印在org.apache.camel.processor.DefaultErrorHandler日志类别中。有没有办法将其更改为自定义日志类别? .errorHandler()允许你设置一个日志类别,但.onException()似乎不允许它。
感谢。
答案 0 :(得分:0)
你可以尝试
.onException(Exception.class)
.to("log:logger_name?level=ERROR&multiline=true&showCaughtException=true&showStackTrace=true")
...
答案 1 :(得分:0)
您可以尝试以下操作:
onException(Exception.class)
.handled(true)
.log(LoggingLevel.ERROR, this.getClass().getSimpleName(),
"${exception.stacktrace} ${messageHistory(false)}");
您还可以在此处查找更多变量: https://camel.apache.org/manual/latest/simple-language.html
答案 2 :(得分:0)
默认情况下,路由ID用作记录器类别。因此,将路由ID设置为类名,然后您可以按照通常的方式配置日志记录:
from(uri)
.id(this.getClass().getName())
.process(new MyProcessor());
({id
在骆驼2中可能被命名为routeId
;以上功能在骆驼3中起作用。)