2010-03-30 15 views

risposta

2

ELMAH è open-source. Puoi scaricare la fonte e apportare le modifiche che preferisci (entro i termini della licenza, ovviamente.)

Dovresti riuscire a intercettare tutti i dati resi disponibili dall'oggetto HttpConext.Request. Dovresti modificare il codice che cattura e memorizza i dati e il database per creare colonne per i nuovi dati.

+0

modificherò la sorgente se necessario. Speravo che ci fosse un modo integrato per configurare i campi visualizzati – kenwarner

+0

Non penso che ci sia un modo per apportare tali modifiche attraverso la configurazione, si dovrebbe modificare la fonte. –

4

Si potrebbe scrivere la propria pagina di errore. Associare un datagrid a ErrorLog.GetErrors() e utilizzare qualsiasi colonna desiderata:

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

Funziona quasi, tranne che nella versione corrente di Elmah (non sono sicuro se questo fosse diverso), GetErrors() non popola completamente gli oggetti ErrorLogEntry. In particolare, ServerVariables è vuoto. Devi usare GetErrors() e poi per ogni oggetto ErrorLogEntry, chiamare GetError (id) per ottenere un oggetto ErrorLogEntry completamente popolato ... –