2010-03-30 8 views

Respuesta

2

ELMAH es de código abierto. Puede descargar la fuente y hacer las modificaciones que desee (dentro de los términos de la licencia, por supuesto)

Debería poder atrapar cualquier dato disponible mediante el objeto HttpConext.Request. Tendría que modificar el código que toma y almacena los datos, y la base de datos para crear columnas para esos nuevos datos.

+0

modificaré la fuente si tengo que. esperaba que hubiera una forma integrada de configurar los campos mostrados – kenwarner

+0

No creo que haya ninguna forma de hacer esos cambios a través de la configuración, tendrías que modificar la fuente. –

4

Puede escribir su propia página de error. Enlazar una cuadrícula de datos a ErrorLog.GetErrors() y utilizar cualquier columnas que desee:

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

Esto casi funciona, excepto en la versión actual de Elmah (no estoy seguro si esto solía ser diferente), GetErrors() no llena completamente los objetos ErrorLogEntry. En particular, ServerVariables está vacío. Debe usar GetErrors() y luego, para cada objeto ErrorLogEntry, invocar GetError (id) para obtener un objeto ErrorLogEntry completamente poblado ... –

Cuestiones relacionadas