我已经阅读了许多不同的文章/主题,但尚未确定在我的JSP中执行Apache Commons日志记录的最佳方式。Apache Commons日志记录JSP
提供一些背景下,我加入了改进的错误逻辑来使用Spring 2。所以,现在我们有一个被使用Spring 2和Spring 3
因此,而不是使用Spring创建的控制器,最初开发的应用程序MVC 3在控制器级别的异常处理,我认为最好在web.xml中配置一个JSP,以记录所有控制器的所有传播异常。
令人惊讶的是,我没有看到使用标记库在JSP内执行日志记录的简单方法。 Apache Commons似乎有一个用于日志记录的退役标签库,但它基于log4j而不是Apache Commons Logging本身。
所以,相反,我执行我的JSP中以编程方式如下:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import="org.apache.commons.logging.Log" %>
<%@ page import="org.apache.commons.logging.LogFactory" %>
<%@ page isErrorPage="true" %>
<% Log logger = LogFactory.getLog(this.getClass()); %>
<html>
<head>
</head>
<body>
<%
StringBuilder stringBuilder = new StringBuilder("\n" + exception);
for(StackTraceElement element : exception.getStackTrace())
{
stringBuilder.append("\n" + element.toString());
}
logger.error("Unhandled exception caught: " + stringBuilder.toString());
%>
<p>Text here</p>
</body>
</html>
所以我的问题是这样的....有没有执行此记录更好的办法?上述的工作,但似乎不必要的尴尬,什么应该是一个共同的任务
从来没有想过的过滤器,绝对看起来更整洁。当我尝试logger.error(“未处理的异常被捕获:”+异常)它只是打印NullPointerException ....也许我犯了一些错误。对于printStackTrace()我不想将它打印到屏幕上,只需记录它,我将如何工作? – DJ180
可能是Commons Logger的配置问题。对不起,因为我从来没有用过它,所以不能详细说明。 – BalusC