Ver esta pregunta para otra respuesta completa: When should I use Tracing vs Logger.NET, Enterprise Library, log4net or Ukadc.Diagnostics?
En resumen, los principales marcos de registro disponibles son la aplicación del bloque integrado .NET Framework System.Diagnostics, log4net, Nlog y Enterprise Library Logging.
Una comparación de estos marcos principales está disponible en: https://essentialdiagnostics.codeplex.com/wikipage?title=Comparison
1) Registro de gestión de archivos
Todos los principales marcos que figuran por encima del soporte archivos rodar pero creo que salen de la limpieza para usted .
p. Ej. en el pasado he usado un trabajo programado de Windows que usa robocopy con "/ mov/minage X" para mover archivos viejos a otro lugar, luego eliminarlos o lo que sea.
El EventSchemaTraceListener utilizado en System.Diagnostics, que I blogged about recently, tiene una opción LimitedCircularFiles, pero no hay mucho soporte de herramientas para ver los registros (están en XML).
2) Capacidad para enviar mensajes de correo electrónico en ciertos tipos de mensajes registrados (errores, por ejemplo)
Todos los principales marcos mencionados anteriormente apoyo esta ya sea directamente o a través de extensiones (oyentes adicionales).
3) Capacidad para escribir mensajes al evento ventanas ingrese
Una vez más, todos los marcos principales apoyar esto, sin embargo, en general, recomendaría que escribir en el registro de eventos de Windows debe hacerse directamente no a través de rastreo.
Uno de los problemas es sobre qué preguntas para la creación automática de fuentes.
Cualquier escrito al registro de eventos (que pasa por EventLog.WriteEvent) se intente automáticamente para crear la fuente en el primer mensaje de registro si no existe - el problema es con seguridad, sólo los administradores se les permite para crear fuentes, por lo que se ejecuta como un usuario normal esto falla.
Debido a esto, realmente necesita agregar un EventLogInstaller, para que la fuente se cree en el momento de la instalación (la instalación la realiza el administrador). Una vez creado, cualquier proceso puede escribir en la fuente.
Esto me lleva a recomendar que necesite crear y escribir en el código de registro de eventos para garantizar que el origen del registro de eventos sea el mismo. Además, si escribe en el registro de eventos en general, no desea poder 'apagarlo' mediante una configuración incorrecta.
Mi recomendación personal es para el .NET Framework System.Diagnostics, en particular, el Service Trace Viewer es excelente para diagnosticar problemas, en particular en entornos de varios niveles y múltiples hilos si se usa WCF donde puede pasar la correlación se identifica a través de los niveles.
log4net es de lejos el más utilizado y es compatible con todos estos requisitos. Es el que usaría, pero YMMV. – Thorarin
Pruebe esto: http://stackoverflow.com/search?q=[.net]+logging Encontrará muchas respuestas interesantes. –
Duplicado, pero Cole W plantea algunos requisitos específicos que él pensó, lo cual es bueno acerca de esta pregunta. – Marijn