2010-03-08 19 views
9

Estamos utilizando ELMAH para registrar la excepción de aplicación web que funciona muy bien !. También queremos saber cómo personalizar ELMAH para registrar la excepción del servicio de Windows.Registro de errores de ELMAH para el servicio de Windows

No estoy interesado en utilizar otra aplicación para registrar solo la excepción de servicio de Windows.

Cualquier ayuda sería apreciada.

Respuesta

12

Hice esto previamente. Descubrí el código que se debe utilizar al excavar el código fuente a partir de ErrorSignal.FromCurrentContext(). Raise (ex); método.

Actualmente solo se registra en la base de datos (ya que eso es todo lo que necesitaba) pero con un poco más de investigación podría escribir un método de envoltura que registre lo que haya configurado en el archivo de configuración.

try 
{ 

Elmah.SqlErrorLog ErrorLog = new Elmah.SqlErrorLog(ConfigurationManager.ConnectionStrings["Default"].ConnectionString); 

ErrorLog.ApplicationName = "AppName"; 

ErrorLog.Log(new Elmah.Error(new Exception("example"))); 

} 
catch (Exception ex) 
{ 
    //catch sql error 
} 

En mi servicio me hizo la variable ErrorLog un objeto único público que se accede fácilmente desde el proyecto de servicio.

+1

Parece que también puede volver a utilizar las secciones de configuración de elmah utilizando ConfigurationManager.GetConfigurationSection ("elmah/errorLog"), y alimentar el resultado (como IDictionary) en el constructor en lugar de la cadena de conexión. – smaglio81

0

se puede usar

Elmah.ErrorLog.GetDefault (nulo) .Log (nueva Elmah.Error (nueva excepción ("texto de error")));

Cuestiones relacionadas