Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ELMAH for ASP.NET MVC 4 using SQL SERVER 2008 R2

I ran ELMAH sql scripts in test DB(It created ELmah_Error table and 3 stored procedures) and configured ELMAH in MVC application using Nuget.

I modified web.config as specified and I'm able to log exceptions into

 http://mysite/elmah.axd

But, instead i want to log the exceptions into Sql Server.

I added below class to achieve that

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
    } 
}

Final step was to:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new ElmahHandleErrorAttribute ());
}

Is it the correct way to use ELMAH to log all exceptions or AM I missing something?

like image 630
kewlguy Avatar asked May 01 '13 03:05

kewlguy


1 Answers

Once you have the database setup, all you need to do is add the following to the <elmah> section your web.config to setup the Elmah to log to the SQL Database:

 <elmah>
      <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="<DBConnString>"
            applicationName="<YourApp>" 
  </elmah>

Replace <DBConnString> and <YourApp> with appropriate values for your configuration.

Once you have done this you will not need to use your custom ElmahHandleErrorAttribute class.

I am not sure which NuGet package you installed, but I would recommend using the Elmah.MVC package as it integrates Elmah into MVC exceptionally well by setting up all of the ErrorHandlers and ErrorFilters for you.

like image 100
Paige Cook Avatar answered Nov 14 '22 00:11

Paige Cook