log c# .net logging log4net elmah

nlog c#



¿Cuál es la diferencia entre log4net y ELMAH? (7)

ELMAH es muy poderoso, pero también muy específico en lo que hace. Hace mucho del trabajo por usted, aunque creo que Log4Net requiere que realice el manejo y el registro de errores.

Algunas personas usan ELMAH lugar de log4net. ¿Qué lo hace mejor?

Me enteré de ELMAH en una respuesta a la pregunta de Stack Overflow. ¿ Cómo puedo iniciar sesión en C #?


ELMAH funciona al crear un httpmodule que se engancha en eventos de error y luego registra. Esto puede ser frustrado y roto fácilmente por un mal diseño. Es posible que Log4Net requiera un trabajo adicional por adelantado, pero si usa un marco AOP y lo aplica en toda su clase o incluso en el ensamblado, puede lograr un mejor registro de excepciones con muy poco código y esfuerzo.

ELMAH solo funciona si tiene acceso a HttpContext, lo que puede ser difícil de lograr en los servicios de WCF. Así que terminarías usando som eother logger en WCF de todos modos. ¿Por qué no utilizar una solución más universal?


ELMAH tiene el propósito de rastrear errores y excepciones para sus aplicaciones web y le permite registrar o ver fácilmente esas excepciones a través de diferentes mecanismos (SQL, RSS, Twitter, archivos, correo electrónico, etc.). Si no tiene un control de excepción incorporado, ELMAH probablemente obtendrá lo que está buscando en términos de manejo de excepciones en un entorno de aplicaciones web.

Log4net también se puede usar para el registro de excepciones, sin embargo, es posible que necesite pasar sus propios manejadores para conectarlo a su aplicación web. Log4net brillará sobre ELMAH si necesita hacer otros tipos de registro de información ya que log4net es un marco de registro de propósito general. Log4net también se puede usar en casi cualquier aplicación .NET.


La diferencia clave es que ELMAH registra excepciones de aplicaciones no controladas; log4net registra lo que le pidas que inicie sesión. Puede configurar log4net para registrar excepciones no controladas, pero ELMAH captura una gran cantidad de información útil de la caja.


ELMAH se usa especialmente para aplicaciones web, mientras que log4net se usa en aplicaciones web y Windows. ELMAH tiene muchas más ventajas que log4net en una aplicación web.


ELMAH:

  • Aplicación web

Log4net:

  • Aplicación web

  • Aplicación de Windows

Referencias adicionales: ref_1 ref_2


Log4Net es un marco de registro de propósito general con una API destinada a ser utilizada dentro de su aplicación (web, consola, dll, etc.).

logger.Debug("Some low level debug message..."); logger.Info("Some basic info"); logger.Warn("Some business logic problem, but not critical"); logger.Error("An unexpected error");

ELMAH es un complemento IIS discreto específicamente para registrar excepciones en una aplicación web. No verá una referencia a ELMAH dentro de su aplicación, no tiene una API con la que interactúe. Utiliza los puntos de extensión IIS del módulo y del manejador para atornillar el comportamiento. Además, tiene un front-end web para ver los errores que han ocurrido en su aplicación web. Log4Net no tiene un front-end, solo una variedad de sumideros de registros (Appenders) que pueden enviar sus mensajes de registro a cosas como archivos de registro, un servidor syslog, una base de datos, etc.