我正在尝试找到一种优雅的方法来记录基于Ajax的请求失败时在我的JSF应用程序中发生的未处理异常。现在,当一些Ajax请求因异常而失败时,我并不总是在服务器日志中看到任何可视指示或输出。
我希望避免在每个可能从Ajax请求调用的getter,setter,action方法等代码中使用这样的代码来混乱我的托管bean:
public SomeWidget getSomeWidget() {
try {
return methodThatGetsWidget();
} catch (RuntimeException e) {
logger.error("Exception occurred", e);
throw e;
}
}
JSF框架中是否有一些钩子来捕获在Ajax请求期间产生的异常,因此我有一个放置日志代码的中心位置?
修改
我目前正在使用我的代码中的slf4j 1.6.1接口和log4j 1.2.16作为实际的日志记录实现。我的JSF实现是Mojarra 2.1.1,容器是Tomcat 7.0.14。我也在使用PrimeFaces 3.0。