mvcアプリケーションで例外をキャッチするために、グローバルファイルに次のコードを配置しました。
void Application_Error(Object sender, EventArgs e)
{
Exception ex = Server.GetLastError().GetBaseException();
log.Error("Exception", ex);
}
そして、どのコントローラーが呼ばれるかを追跡するために以下を実行します。
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (log.IsDebugEnabled)
{
var loggingWatch = Stopwatch.StartNew();
filterContext.HttpContext.Items.Add(StopwatchKey, loggingWatch);
var message = new StringBuilder();
message.Append(string.Format("Executing controller: {0}, action: {1}",
filterContext.ActionDescriptor.ControllerDescriptor.ControllerName,
filterContext.ActionDescriptor.ActionName));
log.Debug(message);
}
}
db、セキュリティ(ldapに接続できないなど)、データの問題/キャストなどに関連するエラーをキャッチするためにできることは他にもありますか?