Zom*_*ies 6 java logging exception-handling java-ee
首先,我为所有不可恢复的异常抛出运行时异常,这导致这些异常传递到容器,我目前使用错误页面(在web.xml中定义).在此错误页面中是一个调用记录器的scriptlet.
我遇到的问题是在此调用时异常不再在堆栈上.我可以从请求范围变量("javax.servlet.error.message")访问它.该字符串是堆栈跟踪.我显然需要这个堆栈跟踪用于记录目的,并且出于安全原因,可以在不同的应用服务器上"关闭"javax.error_message".......
所以我的问题是,如何在Java EE应用程序中最好地记录运行时异常,而不包括以下内容:
try {} catch (Exception e) {logger.log(...)}
Run Code Online (Sandbox Code Playgroud)
?
我想要某种方式从容器中调用记录器可能......就在容器捕获例外之前.
我找到了解决方案。通过添加响应过滤器并包装 chain.doFilter(req, resp) ,如下所示:
try {
chain.doFilter(req,resp);
} catch (Exception e) {
logger.error("", e);
throw new RuntimeException(e);
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这工作得很好,并且不依赖于特定的框架或应用程序服务器。
归档时间: |
|
查看次数: |
1621 次 |
最近记录: |