私はこれに関する多くの記事やスレッドを読んだことがありますが、JSPでApache Commonsのログを記録する最良の方法をまだ決定していません。いくつかのコンテキストを提供するApache CommonsのJSPでのログイン
、私は春の2を使用して独自に開発されたアプリケーションに改善されたエラー・ロジックを追加していだから今、私たちは春の2を使用して作成されたコントローラと春3
を持っているのではなく、春を使用してMVC 3のコントローラレベルでの例外処理では、web.xmlにJSPを設定して、すべてのコントローラに対してすべてのPropogated例外を記録するのが最善の方法だと思います。
驚いたことに、タグライブラリを使用してJSP内で簡単にロギングを実行する方法はありません。 Apache Commonsはロギングのために引退したタグライブラリを持っているようですが、これはApache Commons Logging自体とは対照的にlog4jに基づいています。だから、
、代わりに私は私の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