我已經閱讀了許多不同的文章/主題,但尚未確定在我的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