私は、Spring、Hibernate、およびいくつかの他のライブラリ(ログ用のApache log4jを含む)を使用して大規模なJava Webアプリケーションを開発しています。私の進行中のプロジェクトの1つは、より合理的な情報を提供するために、コードのレガシー領域(私が書いていない!)で多数の例外を書き換えることです。典型的な例外ブロックは次のようになります。Javaでより優れた例外情報をログに記録する
try {
//Some Hibernate business here
}
catch (Exception e) { //Yes, Exception. That's not just me being general. I find this especially frustrating.
log4j.error("Fail to XXXXXX"); //again, real
throw new MyException();
}
これは、いくつかの困難なログの原因となります。私はこれらの例外からより良い情報を得る標準的な方法を探しています。それらのほとんどは、Hibernateの呼び出しをラップします。私は、データベースからレコードを引き出し、それをリストに追加している。ここ
try {
myList.add(((myClass) commonService.getRecordByTableId(myClass.class, ID)).toString());
} catch (ServiceException e) {
log4j.error("Failed to retrieve record from table myClass for id " + ID);
e.printStackTrace();
}
:ここで私はちょうど書いたのと同様の典型的なブロックです。 catchブロックでは、try
ブロックが何をしているのか分かるメッセージを記録し、スタックトレースを出力します。だから、私の質問:エラーを診断するためのより良い情報を得るために、一般的に何か/私がやっているはずのことはありますか?
+1。私ができるならば、もっと多くのポイントを与えるだろう。私はそれの前にいくつかの "エコー"があるスタックトレースを見るのに疲れています。 –
はい、私もそうです。多くの "深刻な"開発者が、ほとんどの例外に対して十分に処理できるようにログと再利用を検討するのは驚くべきことです。 – Guillaume
+1、よろしくお願いします。このプロジェクトで私が非常に悲しいことを起こしたことについてたくさんあります。私はそれを形にしようとしています。 :D – andronikus