SQLEXCPETIONSの生産時にどのくらいのロギングを行う必要がありますか?

softwareengineering.stackexchange https://softwareengineering.stackexchange.com/questions/7539

  •  16-10-2019
  •  | 
  •  

質問

私は、小さな会社で内部で使用されるJava Swingで小さなデータベース中心のアプリケーションを書いています。私は、生産レベルのアプリケーションを開発することをあまり経験していません。

私はORMを使用しません。JavaJDBCでSQLクエリを実行するいくつかの簡単な方法です。データベースにアクセスするすべての方法で私は try-catch の声明 SQLExceptionIOException. 。ここでロギングをする必要がありますか?私がすべき場合は、いくらログする必要がありますか?この場合、良い練習の例を教えてください。

役に立ちましたか?

解決

生産システムの2つの主なことは次のとおりです。

  1. 面白くない情報でログを爆破しないでください
  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
}
ライセンス: CC-BY-SA帰属
所属していません softwareengineering.stackexchange
scroll top