このスタックオーバーフローの質問への回答では、Elmah を使用して処理された例外を手動またはプログラムでログに記録する方法について説明していますが、コストについては説明していません。処理された例外をログに記録するために以下を使用する場合のコストの (理論上の) 違いは何ですか?
- Elmah の ErrorSignal.Raise
- Elmah の ErrorLog.Log
- System.Diagnostics.TraceSource (またはその他のログ ライブラリ)
このスタックオーバーフローの質問への回答では、Elmah を使用して処理された例外を手動またはプログラムでログに記録する方法について説明していますが、コストについては説明していません。処理された例外をログに記録するために以下を使用する場合のコストの (理論上の) 違いは何ですか?
これは実際にはあなたの質問に対する答えではなく、議論のポイントです。Elmah を使用するコスト (実行時間の観点からだと思います) を知ることが重要なのはなぜですか?
これは、時期尚早の最適化のケースである可能性があります。タイトで長いループ内でない限り、あちこちで 100 ミリ秒が問題になることはありません。アプリケーションが大量のエラーをスローして、Elmah の追加コストが蓄積されてパフォーマンスが低下する場合は、代わりに、非常に多くの例外がスローされている理由を確認する必要があるというのが私の意見です。
それはあなたの仲間への使用を守るためですか?ほとんどのロギング ブロックは、非常によく似たパフォーマンス特性を示します。最大の要因の 1 つは、ログの宛先の場所または性質です。ディスクやネットワーク宛先へのログの書き込みなどの I/O 操作は、残りのロギング コードよりもはるかに時間がかかります。