SQLEXCPETIONSの生産時にどのくらいのロギングを行う必要がありますか?
https://softwareengineering.stackexchange.com/questions/7539
-
16-10-2019 - |
質問
私は、小さな会社で内部で使用されるJava Swingで小さなデータベース中心のアプリケーションを書いています。私は、生産レベルのアプリケーションを開発することをあまり経験していません。
私はORMを使用しません。JavaJDBCでSQLクエリを実行するいくつかの簡単な方法です。データベースにアクセスするすべての方法で私は try-catch
の声明 SQLException
と IOException
. 。ここでロギングをする必要がありますか?私がすべき場合は、いくらログする必要がありますか?この場合、良い練習の例を教えてください。
解決
生産システムの2つの主なことは次のとおりです。
- 面白くない情報でログを爆破しないでください
- トラブルシューティングの目的のためにログレベルを上げることを許可します。
何らかのロギングインフラストラクチャを使用してください。その中に例外が発生する可能性がある場合 正常 操作、デバッグレベルで報告します。それが本当の問題の場合は、エラーレベルで報告してください。いずれにせよ、ログレベルを上げることでシステムのトラブルシューティングを行う方法があります。
また、例外を報告するときは、常にスタックトレース +内部例外全体が印刷されていることを確認してください。
他のヒント
IMHO、ここにあなたがすべき非常に最小限があります。私はあなたが使用していると思います log4j.
try
{
// open connection
// begin transaction
// my database stuff
// commit transaction
}
catch (SQLException ex)
{
log.Error("An error occured while ...: " + ex.Message, ex);
// do stuff related to SQLException
// rollback transaction
}
catch (IOExcpetion ex)
{
log.Error("An error occured while ...: " + ex.Message, ex);
// do stuff related to IOException
// rollback transaction
}
catch (Exception ex)
{
log.Error("An error occured while ...: " + ex.Message, ex);
// manage this unhandled exception
// rollback transaction
}
finally
{
// close connection
}
所属していません softwareengineering.stackexchange