2010-04-12 8 views
2

프로덕션 환경에서는 오류가 발생하지만 로컬 환경에서는 오류가 발생합니다. 프로덕션에서 예외가 발생했는지 여부를 확인하는 방법이 있습니까? Tomcat에서 - 사용자가 서블릿이 출력을 반환 할 때 예외를 볼 수 있습니다.GAE 생산 예외를 보는 방법은 무엇입니까?

답변

6

관리자 (관리자)는 관리 콘솔의 로그 뷰어에서 예외 (전체 스택 추적 포함)를 볼 수 있습니다.

예외 스택 추적을 사용자에게 표시하려면 모든 것을 포착하고 스택 추적을 응답 스트림에 인쇄하는 서블릿 필터를 설치할 수 있습니다. 그런 다음 보여주기 위해 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 패턴과 web.xml에 모든 페이지를 필터링하도록 설정할 수 있습니다.

추 신 : Tomcat이 없으며 GAE/J가 Jetty를 실행 중입니다.

+0

초심자를위한 죄송합니다. q : - 어떻게 그럴 수 있습니까? 내가 이해 한대로 필터를 페이지에 매핑 할 수 있지만 모든 페이지에 매핑해야합니다. - 필터는 어떻게 생겼습니까? – bach

+0

내 대답이 업데이트되었습니다. "*"url-pattern을 사용하여 모든 페이지에 필터를 매핑 할 수 있습니다. – Thilo

관련 문제