logger - nlog c# download
Enterprise Logging Block vs NLog vs log4net (5)
Necesito usar una biblioteca de registro en mi proyecto y considerar entre Enterprise Logging Block vs NLog vs log4net. Encontré algunos enlaces en la comparación, pero la mayoría son bastante antiguos y se quejan de cosas como no tener nuevas versiones de log4net por mucho tiempo, etc.
Cualquiera tiene sugerencias sobre cuál es mejor en términos de facilidad de uso, facilidad de configuración, rendimiento, escalabilidad, etc., según los datos actuales.
Acabo de evaluar log4net y NLog para su uso en un proyecto más grande. Ambos tienen una interfaz similar y son altamente configurables.
NLog parece tener un mejor mantenimiento: la incompatibilidad de log4net con .Net4 no se resolvió en log4net durante mucho tiempo. Nlog viene con algunos ''bells and whistles'' más como un paquete NuGet y un esquema XML para Visual Studio para editar archivos de configuración.
Al final decidimos por log4net porque medimos un rendimiento mucho mejor para log4net: ¡Una prueba simple, al escribir 10000 mensajes de registro en un archivo y en un visor de registro de red (Log2Console) mostró un rendimiento diez veces mejor que log4net! No hicimos ajustes en el archivo de configuración, el archivo y el registrador de notwork no se utilizaron con una configuración mínima. Debe verificar esto con una configuración típica de registro de su proyecto.
Los encuentro a todos muy similares y capaces. Han pasado varios años desde que utilicé el Bloque de registro de Enterprise Library, pero incluso entonces era decente. NLog y log4net son ambos sólidos.
Una razón para elegir una sobre otra puede ser la integración de bibliotecas de terceros. Si está utilizando NHibernate o Quartz u otras bibliotecas que utilizan log4net, por ejemplo, puede impulsar su elección.
Personalmente me gusta log4net. Es rápido, estable y configurable (y es realmente fácil de extender con un appender personalizado o similar).
No me molesta la falta de nuevos lanzamientos; en mi opinión, solo demuestra que el código base es estable y contiene las características que debería. Después de todo, quiero que mi registro sea estable por encima de todo.
Aquí hay una pregunta ligeramente similar , quizás también puedas usar algunas de las respuestas desde allí.
Puede posponer la decisión "qué registrador usar" si está utilizando Common.Logging . Este es un contenedor de registro donde puede configurar si el registro debe ir a log4net, nlog, System.Diagnostics.Debug. No sé Enterprise Logging Block y no sé si hay un complemento "Enterprise Logging Block" para el registro común.
Otra diferencia que a menudo se pasa por alto es que NLog es BSD
mientras que log4net está bajo la licencia de Apache
. ELB es MS-PL (versión de código abierto de Microsoft). Eso podría no importar en la mayoría de los casos, simplemente diciendo.