2009-04-06 6 views
2

Visual Basicを使用して書かれたASP.NET Webアプリケーションで作業していますが、私が取得しているエラーメッセージを追跡しようとしています。ASP.NETアプリケーションでVisual Basicで例外を記録する最善の方法は何ですか?

エラーはプロダクションサーバーでのみ発生し、開発環境では発生しないため、ファイル(またはイベントログ)に例外を記録するようにしたいと思います(したがってVS isnそこにインストールされていない...)。

どのようにこれを行うにはベストプラクティスとして誰もが考えていますか?

乾杯

答えて

4

それは「ベストプラクティス」が、最も一般的な方法はlog4netを使用しているであるかどうかわかりません。

+0

今すぐlog4netを見てください。 乾杯 –

2

log4netまたはEnterprise Library Loggingを使用してください。私はまたすべての未処理のエラー(404エラーをフィルタアウト)を記録するHTTPモジュールを追加したいと思います。

グローバルエラーハンドラを実行するときに、すでにエラーをログに記録していることを知るための方法を開発する必要があります。これは、エラーの原因に近いエラーをログに記録して、何がうまくいかなかったかをより多くのコンテキストに含める場合に発生します。

私の場合、エラーを記録すると、データコレクションにアイテムを追加します。例外は例外です。次に、グローバルエラーハンドラは、すべての例外オブジェクトを検査して、それらのいずれも記録していないことを確認します。

0

厄介なこと:あなたができるとすれば、それをキャッチし、できるだけ多くのデータをページにドロップします。 HTMLコメントに入れて、ユーザーが見ることができないようにします。何かのように:

lblError.Text =(書式を入れて 例外情報をここに);

<! - < asp:label id = lblError /> - >

ほとんどが乱雑です:Trace.WriteLineちょっとしたものを調べてください。 ASP.NETでトレースを有効にすると、特定のページ(_trace.axd?)に移動し、そのページの読み込みに関するすべてのメッセージのダンプを取得できます。私は本当にそれを使用していないが、それは動作します。

これは一時的な問題ですので、少し面倒です。物理アクセスがある場合は、Trace.WriteLineを使用して出力し、サーバー上でdebugview(Microsoftから)を実行します。次に、このデバッグ出力をキャプチャすることができます(コアWin32 APIはOutputDebugStringです - .net呼び出しはDebug.WriteLineです)

Nicer:Log4Net。どこにでも使用できるようにセットアップしてください。ほとんどの時間は "ERROR"にしますが、この場合は解決策が見つかるまで "DEBUG"を使用してください。

私は3、4、または今は3、そして4はコードベースを少しきれいにするときに使います。

:)

0

あなたはサイトのGlobal.asaxのを手に入れることができる場合 - その後のGlobal.asaxの「のApplication_Error」セクションで(新しい例外として、この

薄暗いEXような何かを行います) ex = Server.GetLastError()。GetBaseException() Dim g新しい汎用関数 ASendEmailFunction(ex。メッセージ。ToStringメソッド()& ex.Source.ToString()& ex.StackTrace.ToString())

これは、アプリケーションのすべてのエラーを取得し、あなたのすべての詳細をお送りします - あなたはそれがちょうど送信ASendEmailFunction()ことを作成する必要がありますあなたの内容の電子メール

(あなたはこれより良くたくさんんでしたが、私は、このボックスに直接これを入力しています)

1

あなたは上記のASP.NET 2.0以上を実行している場合は、最善のことは何もしないことです。既定では、ASP.NETヘルスモニタはアプリケーションイベントログに例外を記録します。 eventvwr.exeを使用し、 "ASP.NET"から警告を探してください。ログに記録される情報は非常に完全です。

私が「何もしない」と言うとき、あなたがログに記録するつもりなら、例外をキャッチしないということです。必要に応じてカスタムエラーページを設定できますが、例外がトップレベルで捕捉されていないことを確認してください。誰もが、まだ

Elmah

は特別にASP.NETでのエラーログのために構築されてい Elmah、そしてそれについての素晴らしいものの一つに言及していない

+0

おかげさまで、ありがとうございましたが、私はイベントログビュー用品より詳細が必要です。 ありがとうございます –

+0

好奇心の外に、何が必要ですか? http://msdn.microsoft.com/en-us/library/bb398933.aspxを参照し、WebErrorEventから派生したWebイベントを発生させてください(http://msdn.microsoft.com/en-us/library/を参照)。 system.web.management.weberrorevent.aspx)。 –

1

驚いはあなただけでASP.NETアプリケーションに追加することができるということですDLLをBinディレクトリにドロップし、web.configファイルを編集します。コードを変更する必要はありません。

関連する問題