2010-11-01 12 views
12

Estoy usando ELMAH en mis proyectos ASP.NET MVC y realmente me gusta su simplicidad. Pero necesitaba la capacidad de registrar ciertos eventos en mi código de una manera log.Info ("mensaje"). Como ELMAH no proporciona esa habilidad, comencé a buscar en NLog.¿Registra excepciones no controladas usando NLog? ¿Deberían ELMAH y NLog usarse juntos?

Algunas preguntas vinieron a la mente:

  1. Es segura la utilización tanto ELMAH y Nlog exageración? ¿Utiliza ELMAH para excepciones no controladas y NLog para todo lo demás?
  2. ¿Es posible configurar NLog para registrar excepciones no controladas en nlog.config o se necesita un código personalizado?
  3. Si se necesita un código personalizado, ¿cuál sería el mejor lugar para agregarlo? ¿El método OnException en el framework MVC? ¿El archivo global.asax?

Comentarios de Anny son muy apreciados. Hasta el momento no he encontrado ningún buen mensaje sobre este asunto?

Respuesta

4

De hecho, puede activar una alerta de ELMAH. De este modo:

ErrorSignal.FromCurrentContext().Raise(new System.ApplicationException("An error occured in SendEmail()", ex)); 

No se olvide de agregar una referencia a elmah.dll y añadir using Elmah; al archivo. Ver here para un poco más ejemplos.

15

Respondiendo a la pregunta número 2, acabo de leer this article donde se explica cómo registrar excepciones sin manejo con NLog. Básicamente es agregar en el archivo Global.asax.cs algo así como:

protected void Application_Error() 
{ 
    Exception lastException = Server.GetLastError(); 
    NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); 
    logger.Fatal(lastException); 
}