2

次のような予期される例外をログに記録するために log4net を使用しています。

try {
   // some exception occurred
} catch (Exception ex)
{
   log.Error("Exception occurred!", ex);
}

情報は、ファイルまたは設定した場所に書き込まれます。しかし、try...catch ブロックの実行時例外に含まれていないものについては、発生するたびにそれらを完全に記録するにはどうすればよいですか?

log4netはそれをサポートしていますか、またはそれらを一緒にログに記録する方法はありますか? ありがとうございました。

4

2 に答える 2

7

Application_ErrorGlobal.asax でグローバル イベント ハンドラーをサブスクライブすると、未処理の例外がすべて発生し、ログに記録する (そしておそらくそれらを処理する) ことができます。

例えば:

protected void Application_Error()
{
    var exception = Server.GetLastError();
    log.Error("Exception occurred!", exception);

    // TODO: optionally handle the exception here, for example display
    // some custom error page or something
}
于 2013-03-10T12:41:07.310 に答える
5

ELMAHはここであなたの友達です - log4net でそれを使うことができます。

ELMAH (Error Logging Modules and Handlers) は、完全にプラグ可能なアプリケーション全体のエラー ログ機能です。実行中の ASP.NET Web アプリケーション、またはマシン上のすべての ASP.NET Web アプリケーションに動的に追加でき、再コンパイルや再展開は必要ありません。

nuget を使用した構成で適切なパッケージを取得できます。

于 2013-03-10T12:41:29.473 に答える