カテゴリー
Microsoft

【ASP.NET MVC5】例外発生時のカスタムエラーページの設定ポイント♪

【ASP.NET MVC5】例外発生を補足して自動的にログ書き込みを行う方法 | oki2a24 ではエラーが発生したときに自動的にロギングされるように設定いたしました。

この時、エラーページが自動的に表示されるわけですけれども、これを明確にコントロールするためのポイントをメモしておきます♪

ポイント

  • HTTP 404. Not Found 時にはカスタムエラーページは表示されない。
  • コードの確認ポイント
    • Web.config の <system.web> 内の の mode を On にしていること
    • App_Start\FilterConfig.cs の RegisterGlobalFilters メソッド に HandleErrorAttribute クラスを追加していること
    • Views\Shared\Error.cshtml でエラー画面を設定していること

ひとつひとつコードを見ていきます。

カテゴリー
Microsoft

【ASP.NET MVC5】例外発生を補足して自動的にログ書き込みを行う方法

前提条件

ASP.NET MVC5 では、開発中に例外が発生しますとビューに自動的に例外情報を表示してくださいます。

本番の時も、自動的に知らせて欲しいですの!ですけれども、画面に表示するわけにはまいりません。ログに出力したいですの♪

今回、例外が発生したら自動的にログに書き込む方法を残します。

例外発生を自動的にロギングするコード

  • Global.asax ファイル を利用する。
  • Application_Error メソッド宣言には override 不要。
  • エラーは、Application_Error メソッドの引数ではなく、Server.GetLastError() で取得する。

Global.asax

protected void Application_Error(object sender, EventArgs e)
{
 var exception = Server.GetLastError();
 if (exception == null)
 {
  return;
 }
 logger.Error(exception.Message, exception);
}