2009-08-06 6 views
5

私は例外を取り除く必要がありますが(ログ中は例外)、例外情報が時間の霧に完全に失われないようにしたいと思っています。リリースモードでデバッグに書き込む

Debug.Write(ex.ToString()); 

このようにすれば、少なくとも問題のあるマシンでDebugViewを使用することができます。

問題は、リリースモードでデバッグクラスが削除されている - リリースモードでデバッグするために何かを出力するにはどうすればよいですか?

答えて

16

は単に

Trace.Write(ex.ToString()); 

これはDebug.Write(ex.ToString());と同じことが、(あなたのプロジェクトの設定でTRACE定数の定義を削除しませんでした限り)リリースモードでは削除されません

を使用します
+3

ハードディスクをいっぱいにするのを避けるために、〜14日後にログファイルを回転させてください。 – JBRWilkinson

2

多分、いくつかのログフレームワークを検討する価値があるでしょう。私は異なるログレベル(DEBUG、INFO、WARN、ERROR)、異なるロガー(アプリケーションの重要な部分ごとに1つのロガーを入れることができます)を持つlog4netを好みます。設定ファイル。だからコードのいくつかの領域に問題がある場合は、そのロガーのDEBUGレベルを設定することができ、完了したら元のレベルを戻すことができます。

これはちょうど表面に傷を付け、エラー時に電子メールを送信したり、DBにログを記録したりするなど、さらに多くの機能があります。

関連する問題