2013-05-01 12 views
7

Ich lief ELMAH SQL-Skripte in Test-DB (Es erstellt ELmah_Error Tabelle und 3 gespeicherte Prozeduren) und konfigurierte ELMAH in MVC-Anwendung mit Nuget.ELMAH für ASP.NET MVC 4 mit SQL Server 2008 R2

I modifizierte web.config wie angegeben, und ich bin in der Lage Ausnahmen in

http://mysite/elmah.axd 

Aber ich will stattdessen anmelden, die Ausnahmen in SQL Server anmelden.

I unter Klasse hinzugefügt, um zu erreichen, dass

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

letzte Schritt war:

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

Ist es der richtige Weg, ELMAH zu verwenden, um alle Ausnahmen zu protokollieren oder bin ich etwas fehlt?

Antwort

11

Sobald Sie die Datenbank angelegt haben, alles, was Sie tun müssen, um Setup folgendes zum <elmah> Abschnitt fügen Sie Ihre web.config die Elmah auf die SQL-Datenbank zu protokollieren:

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

ersetzen <DBConnString> und <YourApp> mit geeigneten Werten für Ihre Konfiguration.

Sobald Sie dies getan haben, müssen Sie nicht Ihre benutzerdefinierte ElmahHandleErrorAttribute-Klasse verwenden.

Ich bin mir nicht sicher, welches NuGet Paket Sie installiert haben, aber ich würde das Elmah.MVC Paket empfehlen, da es Elmah außergewöhnlich gut in MVC integriert, indem es alle ErrorHandlers und ErrorFilters für Sie einrichtet.

+1

Wie sieht es mit einer bestehenden Elmah-Konfiguration aus? Wird Elmah die notwendigen Tabellen erstellen? – Rahatur

+7

Nein elamh erstellt die vorhandenen Tabellen nicht automatisch. Sie können jedoch ein Skript für Ihren Datenbanktyp und Ihre Version von https://code.google.com/p/elmah/wiki/Downloads im Datenbankbereich herunterladen. –

+0

Ich glaube, es ist der Name der Verbindungszeichenfolge (wie im Abschnitt web.config definiert), nicht die Verbindungszeichenfolge selbst, die im Wert connectionStringName = "" angegeben wird. – Bern

Verwandte Themen