HandleErrorAttributeのカスタマイズ(ブロッキングの使用)

2924 ワード

mvcには、操作方法によって引き起こされる異常を処理するためのHandleErrorAttribute特性が提供される.
HandleErrorAttributeを継承し、OnExceptionを書き換えることができます.エラーをイベントログに書き込みます.
 

  
    
public class HandleErrorWithELMAHAttribute:HandleErrorAttribute
{
public override void OnException(ExceptionContext Context)
{
base .OnException(Context);
dynamic e
= Context.Exception;
if ( ! Context.ExceptionHandled)
return ;
LogException(e);

}

private static void LogException(Exception e)
{
HttpContext context
= HttpContext.Current;
string path = " ~/1.txt " ;
path
= context.Server.MapPath(path);
StreamWriter STRW
= File.AppendText(path);
STRW.WriteLine(e.Message);
STRW.Flush();
STRW.Close();
STRW.Dispose();

}
}

 
これに対して、log 4 net、Elmahなどの共通のエラーログコンポーネントを使用することができます.