我在生产环境上遇到错误,但在本地环境上却没有.有没有办法看到可能从生产中抛出的异常?在tomcat中 - 当servlet返回其输出时,用户将能够看到异常
您(管理员)可以在管理控制台的日志查看器中查看异常(包括完整堆栈跟踪).
如果要向用户显示异常堆栈跟踪,可以安装Servlet过滤器捕获所有内容并将堆栈跟踪打印到响应流(然后您应该将其记录为SEVERE,以便仍然将其显示在日志中).
像这样的东西:
public class ExceptionLogger implements Filter {
@Override
public void init(FilterConfig config) throws ServletException {
}
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
try{
arg2.doFilter(arg0, arg1);
} catch (Exception e) {
Logger.getLogger("ExceptionLogger").log(Level.SEVERE,
"request failed with an exception", e);
e.printStacktrace(arg1.getWriter());
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以将其设置为使用url-pattern"*"过滤web.xml中的所有页面.
PS:没有Tomcat,GAE/J正在运行Jetty.
| 归档时间: |
|
| 查看次数: |
272 次 |
| 最近记录: |