プロが教える店舗&オフィスのセキュリティ対策術

Exception発生時のStackTraceをString変数に格納してエラー時のログ出力等の処理に使用したいと思っており、StackTraceをStringに格納する方法で思案しております。JDK1.4であればgetStackTrace()等が使えそうですが、当方はJDK1.3を使用しており、1.4から実装されたgetStackTrace()は使用できないために独自にコーディングする必要があると思っております。

なにかよい方法はないでしょうか。Stringは配列になってももちろんかまいません。サンプルロジックや参考HP等を紹介していただきたいと思っております。

よろしくお願いいたします。

A 回答 (1件)

StringWriterをラップするPrintWriterを作って、printStackTrace(PrintWriter s)で

出力すれば?
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
ご回答の内容と、TOMCATソースのスタック出力方法を
参考にして以下のようなロジックで対応できました。

CharArrayWriter buf = new CharArrayWriter();
PrintWriter writer = new PrintWriter(buf);
exp.printStackTrace(writer);

Throwable rootCause = exp.getRootCause();
if (rootCause != null) {
 writer.println("----- Root Cause -----");
 rootCause.printStackTrace(writer);
}

System.out.println("writer.toString:" + buf.toString());

お礼日時:2006/03/28 12:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!