エンタープライズアプリケーションの場合、(トランザクションレコードをDBに書き込むことは別として)監査とデバッグの目的でのみイベント/監査レコードを書き込みますか?
その場合、フラットファイルに書き込むのですか、それとも直接DBに書き込むのですか?または両方?どのような情報を収集しますか?
エンタープライズアプリケーションの場合、(トランザクションレコードをDBに書き込むことは別として)監査とデバッグの目的でのみイベント/監査レコードを書き込みますか?
その場合、フラットファイルに書き込むのですか、それとも直接DBに書き込むのですか?または両方?どのような情報を収集しますか?
それは完全にあなたのビジネスニーズに依存します。場合によっては、ユーザーや時間ごとに、すべてのアイテムのすべての変更を記録する必要があるという要件があります。一部の人はそれを要求し、データのすべての単一の読み取りをログに記録する必要があります。一部のアプリケーションは、特定のデータ型が変更された場合にのみ記録します。それはあなたが望むものに依存します。キャプチャされた合理的な情報は次のとおりです。誰が、何を、いつ...
監査ログは通常、印刷ステートメントのように技術的な性質のものではありません。必要に応じて監査ログを使用することはできますが、デバッグ目的で監査ログから始めることはありません。ただし、通常のアプリケーションログは、スタックトレースなどが含まれているのに対し、監査ログには含まれていないため、問題のデバッグに適しています。
DBまたはフラットファイルに関しても、状況によって異なります。DBへの書き込みは、永続層のイベントシステムにフックして監査イベントを生成できるという点で、特にHibernate/JPAで魅力的です。Hibernate / JPAには、監査したい「保存」、「更新」、「削除」などのイベントがあるため、これは非常に自然なマッピングです。特定のタイプのユーザーがログ情報を確認できるようにする必要がある場合は、DBにデータを保存することも有益です。また、ほとんどの企業は定期的に日付をバックアップしているため、監査情報も保持されます。
一方、記録を保持するだけでよい場合は、フラットファイルロギングの単純さに勝るものはありません。