我在测试DB中运行了ELMAH sql脚本(它创建了ELmah_Error表和3个存储过程),并使用Nuget在MVC应用程序中配置了ELMAH.
我按照指定修改了web.config,我可以将异常记录到
http://mysite/elmah.axd
Run Code Online (Sandbox Code Playgroud)
但是,我想将异常记录到Sql Server中.
我在下面添加了类来实现这一点
public class ElmahHandleErrorAttribute : System.Web.Mvc.HandleErrorAttribute
{
public override void OnException(System.Web.Mvc.ExceptionContext context)
{
LogException(e);
}
private static void LogException(Exception e)
{
// Call to Database and insert the exception info
}
}
Run Code Online (Sandbox Code Playgroud)
最后一步是:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new ElmahHandleErrorAttribute ());
}
Run Code Online (Sandbox Code Playgroud)
这是使用ELMAH记录所有异常的正确方法还是我错过了什么?