2010-03-30 5 views

Antwort

2

ELMAH ist Open-Source. Sie können die Quelle herunterladen und alle gewünschten Änderungen vornehmen (selbstverständlich unter den Bedingungen der Lizenz.)

Sie sollten in der Lage sein, alle vom Objekt HttpConext.Request zur Verfügung gestellten Daten abzufangen. Sie müssten den Code ändern, der die Daten erfasst und speichert, und die Datenbank, um Spalten für diese neuen Daten zu erstellen.

+0

i die Quelle ändern, wenn ich muss. Ich hatte gehofft, es gab eine eingebaute Möglichkeit, die angezeigten Felder zu konfigurieren – kenwarner

+0

Ich glaube nicht, es gibt eine Möglichkeit, diese Änderungen durch Konfiguration vorzunehmen, müssten Sie die Quelle ändern. –

4

Sie könnten Ihre eigene Fehlerseite schreiben. Binden eines Datagrid ErrorLog.GetErrors() und verwenden, was Spalten Sie wollen:

List<ErrorLogEntry> entries = new List<ErrorLogEntry>(); 
ErrorLog.GetDefault(HttpContext.Current).GetErrors(0, 50, entries); 
string ip = entries[0].Error.ServerVariables["REMOTE_ADDR"]; 
string referrer = entries[0].Error.ServerVariables["HTTP_REFERER"]; 
+3

Das funktioniert fast, außer in der aktuellen Version von Elmah (nicht sicher, ob das früher anders war) füllt GetErrors() die ErrorLogEntry-Objekte nicht vollständig auf. ServerVariables ist insbesondere leer. Sie müssen GetErrors() verwenden und dann für jedes ErrorLogEntry-Objekt GetError (id) aufrufen, um ein vollständig ausgefülltes ErrorLogEntry-Objekt abzurufen. –