将错误页面处理的任何Tomcat级别异常记录在web.xml中
我的web.xml中有以下几行代码,它们将堆栈跟踪呈现替换为自定义的用户友好错误页面将错误页面处理的任何Tomcat级别异常记录在web.xml中,tomcat,logging,Tomcat,Logging,我的web.xml中有以下几行代码,它们将堆栈跟踪呈现替换为自定义的用户友好错误页面 <error-page> <location>/error.html</location> </error-page> /error.html 我想知道的是,是否有可能让Tomcat将错误页面元素处理的任何异常记录到日志文件中。如果我使用访问日志,我会看到500,但我无法看到堆栈跟踪。如何将堆栈跟踪记录到日志中?您可以创建一个专用servlet来处理错误
<error-page>
<location>/error.html</location>
</error-page>
/error.html
我想知道的是,是否有可能让Tomcat将错误页面元素处理的任何异常记录到日志文件中。如果我使用访问日志,我会看到500,但我无法看到堆栈跟踪。如何将堆栈跟踪记录到日志中?您可以创建一个专用servlet来处理错误
<servlet>
<servlet-name>ErrorHandler</servlet-name>
<servlet-class>ErrorHandler</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ErrorHandler</servlet-name>
<url-pattern>/ErrorHandler</url-pattern>
</servlet-mapping>
<error-page>
<location>/ErrorHandler</location>
</error-page>
public class ErrorHandler extends HttpServlet {
private static final Log LOG = LogFactory.getLog(ErrorHandler.class);
public void doGet(HttpServletRequest req, HttpServletResponse resp) {
// Obtain the original exception
final Throwable throwable = (Throwable) req.getAttribute("javax.servlet.error.exception");
// Log the exception
log.error("Caught unhandled exception: " + e, e);
// Forward to the friendly error page
RequestDispatcher rd = req.getRequestDispatcher("error.html");
rd.forward(request, response);
...
}
}