Я прочитал много разных статей / тем по этому вопросу, но пока не определился, как лучше всего выполнять регистрацию Apache Commons в моей JSP.
Чтобы обеспечить некоторый контекст, я добавляю улучшенную логику ошибок в приложение, которое изначально разрабатывалось с использованием Spring 2. Итак, теперь у нас есть контроллеры, созданные с использованием Spring 2 и Spring 3.
Таким образом, вместо использования обработки исключений в Spring MVC 3 на уровне контроллера, я думаю, что было бы лучше настроить JSP в файле web.xml, который бы регистрировал все распространенные исключения для всех контроллеров.
Удивительно, но я не вижу простого способа ведения журнала в 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>
Итак, мой вопрос заключается в следующем ... есть ли лучший способ выполнить это ведение журнала? Вышеописанное работает, но кажется излишне неловким из-за того, что должно быть обычной задачей