GAE如何看待生产异常?

时间:2010-04-12 09:00:19

标签: google-app-engine

我在生产环境中遇到错误,但在本地环境上没有。 有没有办法看到可能从生产中抛出的异常? 在tomcat中 - 用户可以在servlet返回其输出时看到异常

1 个答案:

答案 0 :(得分:6)

您(管理员)可以在管理控制台的日志查看器中查看异常(包括完整堆栈跟踪)。

如果要向用户显示异常堆栈跟踪,可以安装一个捕获所有内容的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());
        }
    }
}

您可以将其设置为使用url-pattern“*”过滤web.xml中的所有页面。

PS:没有Tomcat,GAE / J正在运行Jetty。