2010-03-30 14 views

Odpowiedz

2

ELMAH jest open-source. Możesz pobrać źródło i wprowadzić dowolne modyfikacje (oczywiście w zakresie warunków licencji).

Powinieneś być w stanie przechwycić wszelkie dane udostępnione przez obiekt HttpConext.Request. Będziesz musiał zmodyfikować kod, który pobiera i przechowuje dane, oraz bazę danych, aby utworzyć kolumny dla tych nowych danych.

+0

Zmodyfikuję źródło, jeśli będę musiał. Miałem nadzieję, że istnieje wbudowany sposób konfigurowania wyświetlanych pól. – kenwarner

+0

Nie sądzę, że jest jakikolwiek sposób na dokonanie tych zmian poprzez konfigurację, musisz zmodyfikować źródło. –

4

Możesz napisać własną stronę błędu. Połącz datagrid z ErrorLog.GetErrors() i użyj dowolnych kolumn:

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

To prawie działa, z wyjątkiem bieżącej wersji Elmah (nie ma pewności, czy było inaczej), GetErrors() nie wypełnia całkowicie obiektów ErrorLogEntry. W szczególności ServerVariables jest pusty. Musisz użyć GetErrors(), a następnie dla każdego obiektu ErrorLogEntry, wywołać GetError (id), aby uzyskać całkowicie wypełniony obiekt ErrorLogEntry ... –