1
私は非常に奇妙な問題を抱えています。スタックトレースを記録すると、エラーが発生した行ではなく、ロガーと呼ばれる行で発生しているように見えます。これは、エラーを追跡するという点で重大な時間を浪費します。TomcatとロギングStacktrace情報
tomcat6、openjdk 6、およびlog4jを使用します。
どのような考えですか?あなたが与えることができるすべての助けをありがとうございます。
ここは例です。コード、ライン137-142:
try {
req.getContentType().trim();
} catch (Exception e) {
log.error("DEBUG: " + e.getLocalizedMessage(), e.fillInStackTrace());
e.printStackTrace();
}
ログ:
2012-01-19 10:13:25,393 [http-8080-1] ERROR com.myservlet.servlet.Servlet2 - DEBUG: null
java.lang.NullPointerException
at com.myservlet.servlet.Servlet2.doPost(Servlet2.java:140)
at com.myservlet.servlet.Servlet2.doGet(Servlet2.java:292)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) ...
を行います。私たちは非コンテナベースのJavaコードを作成します。これは、そのロギングパターンを借用しておく必要があります。何らかの理由で、そのパターンはコンテナベースではないコードでは動作しますが、Tomcatでは動作しません。 将来すべてのケースを調整する必要があります。どうもありがとうございました。 – decoy
そのパターンは、コンテナや環境に関係なく、他のビットのコードでスローされた例外を記録するのには適していません。これは、コード内の正確なポイントのスタックトレースをログに記録する目的のみで人工的に例外を作成する場合にのみ適切です。 – AndyT
ありがとうございます。それは今より多くの意味があります。私の前でこのコードを持っていた人は誰か非常に奇妙なことをしていました。私は技術と言語の間をかなり飛び越えなければならないので、紛失するのは簡単です。これがその時代の一つだと思います。 :) – decoy