これは、アプリケーション内でログに記録できるもの、ログを記録したい理由、およびそれを行う方法についての私の論理的な内訳です。実装時にlog4netなどのロギングフレームワークを使用することをお勧めします。
例外ロギング
他のすべてが失敗した場合、これはすべきではありません。すべての未処理の例外をキャプチャするための中心的な手段を用意することをお勧めします。これは、スレッド以上のものを使用していない限り、アプリケーション全体を巨大な try/catch でラップするよりもはるかに難しくありません。ただし、例外が届くまで待つと、多くの有用な情報が範囲外になってしまうため、作業はここで終わりではありません。少なくとも、スタックが巻き戻されるときにデバッグに役立つ可能性が高いアプリケーションの状態の特定の部分を収集するようにしてください。アプリケーションは、特に本番環境では、このタイプのログ出力を生成できるように常に準備しておく必要があります。ELMAHをまだご覧になっていない場合は、ぜひご覧ください。私はそれを試したことはありませんが、私は素晴らしいことを聞きました
アプリケーション ロギング
私がアプリケーション ログと呼んでいるものには、「削除された注文」や「ユーザーがサインオンした」などの概念レベルでアプリケーションが行っていることに関する情報をキャプチャするログが含まれます。この種の情報は、傾向の分析、システムの監査、システムのロックダウン、テスト、セキュリティ、おおざっぱなバグの検出に役立ちます。これらのログを本番環境にも残すことを計画することは、おそらく良い考えです。おそらく、さまざまなレベルの粒度で。
トレース ロギング
私にとって、トレース ロギングは、ロギングの最も詳細な形式を表しています。このレベルでは、アプリケーションが何を行っているかよりも、どのようにそれを行っているかに焦点を当てます。これは、コードを 1 行ずつ実際に見ていく上での 1 ステップです。おそらく、並行性の問題や、再現が困難な問題に対処するのに最も役立ちます。これを常に実行しておく必要はなく、おそらく必要なときにのみオンにします。
最後に、通常は最後に対処するだけの他の多くの事柄と同様に、ロギングについて考えるのに最適な時期はプロジェクトの開始時です。これにより、アプリケーションを念頭に置いて設計することができます。素晴らしい質問ですが!