Estoy investigando cómo implementar el registro en mi aplicación C#: es una biblioteca de clases DLL. ¿Qué marcos de registro son los más utilizados, lo que daría a los usuarios de mi archivo DLL la mayor flexibilidad y capacidad de configuración? ¿Hay un equivalente de C# de log4j?¿Cuál es el marco de registro más utilizado en C#?
Respuesta
Equivalente de log4j para la plataforma .NET es log4net y supongo que es ampliamente utilizado.
edición (no por el autor): En caso de que no desee utilizar log4net, aquí hay una gran variedad de alternativas de https://github.com/quozd/awesome-dotnet/blob/master/README.md#logging:
- Essential Diagnostics - Extiende las características incorporadas de espacio de nombres System.Diagnostics para proporcionar el registro flexibles
- NLog - Nlog - Advanced .NET y Silverlight registro
- Logazmic - El código abierto Nlo g visor para Windows
- ELMAH - ELMAH Sitio Oficial
- Elmah MVC - Elmah para MVC
- Logary - Logary es un registro de objetivos múltiples, la localización y verificación de salud biblioteca de la métrica de rendimiento, para Mono y .NET. Respuesta de .NET a DropWizard. Admite muchos objetivos, creados para micro servicios.
- Log4Net - La biblioteca log4net Apache es una herramienta para ayudar a las declaraciones de registro de salida del programador a una variedad de destinos de salida
- Serilog - Una biblioteca de registro sin sentido para la era NoSQL. Combina lo mejor del registro de diagnóstico tradicional y estructurado en un paquete fácil de usar.
- StackExchange.Exceptional - gestor de errores utilizado para la red Pila Cambio
- Semantic Logging Application Block (SLAB) - Extiende las características incorporadas de System.Diagnostics.Tracing espacio de nombres (clase EventSource) para conectarse a varios sumideros incluyendo tablas de Azure, bases de datos, archivos (JSON, XML, texto). Admite el registro en proceso y fuera de proceso a través de ETW, y Rx para el filtrado/agregación de eventos en tiempo real.
- Foundatio - Una API de registro fluido que se puede utilizar para registrar mensajes en toda la aplicación.
- Exceptionless - Excepción Cliente .NET
- Loupe - Registro y supervisión centralizados de .NET. [patentado][Nivel libre]
- elmah.io - Nube de registro para aplicaciones .NET web usando ELMAH. Encuentra errores antes de salir a la luz. Potente búsqueda, API, integración con Slack, GitHub, Visual Studio y más. [Free for OSS][$]
- BugSnag - registra errores. Incluye información de diagnóstico útil, como seguimiento de pila, sesión, lanzamiento, etc. Tiene un nivel gratuito. [Libre para OSS] [$]
Uso log4net en casi todas mis aplicaciones .NET. Sin embargo, mis clases no contienen una referencia a log4net directamente, oculto esta preocupación de infraestructura detrás de una interfaz y uso la inyección de dependencia. – JohnRudolfLewis
También estamos usando log4net. Es simplemente genial. Increíblemente flexible, increíblemente rápido. –
use log4net y nunca mire hacia atrás ... ¿No SO utiliza log4net? –
han utilizado Nlog éxito en numerosos proyectos.
Estoy usando NLog de años con éxito y es un proyecto muy bien hecho.
Usamos nuestras propias clases de registro, implementadas llamando al log4net. Esto nos permite aprovechar este marco flexible y ampliamente utilizado al tiempo que evitamos miles de referencias directas al mismo en el código fuente.
Las personas han estado usando Enterprise Library ampliamente. Pero puede ser cierto que los desarrolladores están cambiando a otros productos en estos días.
Lo verificaría y vería si tiene la funcionalidad necesaria que necesitas y no demasiada hinchazón.
Enterprise Library. Es robusto y viene directamente de Microsoft con todas sus mejores prácticas incluidas. Lo usamos en todos nuestros proyectos. Es muy flexible y hay una herramienta de interfaz de usuario que puede usar en caso de que no quiera perder el control de la administración desde el archivo de configuración.
Downvoting porque Enterprise Library no es robusto. Es lento, agrega una sobrecarga ridícula, y la API tampoco es genial. –
@John, independientemente de su opinión sobre la biblioteca empresarial, todavía es probablemente la más utilizada (probablemente porque proviene directamente de Microsoft) y proporciona la flexibilidad y la capacidad de configuración necesarias según la pregunta. Creo que es una respuesta perfectamente válida a la pregunta. – desigeek
¿Qué lo hace ampliamente utilizado? EntLib.Logging tiene 280K de descargas (https://www.nuget.org/packages/EnterpriseLibrary.Logging/) en NuGet comparado con 2.6M para log4net (https://www.nuget.org/packages/log4net/). De hecho, NLog tiene 1.5M y Serilog tiene 130K.Mi principal objeción es que lo llamaste Robusto. Todos los equipos con los que trabajé lamentamos usarlo. Por cierto, "es lento y agrega una sobrecarga ridícula" NO es una opinión. –
log4net es casi seguro el más común.
pero yo uso Common.Logging - http://netcommon.sourceforge.net/ ya que me da la flexibilidad
Hay una variedad de implementaciones para el registro .NET actualmente en uso , log4net, Enterprise Library registro, Nlog, por nombrar el más popular. La desventaja de tener implementación diferente es que no comparten una interfaz común y por lo tanto imponen una implementación de registro particular en los usuarios de su biblioteca.
biblioteca Common.Logging introduce una simple abstracción para permitirle seleccionar una aplicación específica tala en tiempo de ejecución. Por lo tanto, usted puede diferir la decisión de qué biblioteca de registro particular utilizar hasta el despliegue . Los adaptadores se utilizan para conectando un sistema de registro particular en Common.Logging.
¿Cuál es el beneficio de diferir la decisión? – BKSpurgeon
Guau, esto es más de 8 años de edad. Como dijo Common.Logging (y todavía lo hace), puede aplazar su decisión hasta la implementación. Por ejemplo; ¿Tal vez quieras etiquetar en blanco tu sistema? Y los devops para la empresa que quiere alojarlo prefieren Enterprise Library Logging, mientras que otro equipo de devops prefiere log4net. – gef
Estoy interesado en usar Common.Logging (gracias por la sugerencia, BTW), pero estoy cansado de la sobrecarga de rendimiento en la que incurre la capa de abstracción/resolución en tiempo de ejecución. ¿Quizás conozcas algún punto de referencia relacionado con esto? –
- 1. ¿Cuál es el marco de desarrollo de aplicaciones móviles multiplataforma más utilizado actualmente?
- 2. ¿Cuál es el marco de WSGI más simple/más liviano?
- 3. ¿Cuál es el punto de utilizar un marco de registro?
- 4. ¿Cuál es el más utilizado? RSS o Atom? y de cuál es mejor construir?
- 5. ¿Cuál es el marco de burla más completa para HttpContext
- 6. ¿Cuál es el marco de prueba de unidad más comúnmente utilizado para diferentes tipos de aplicaciones de Ruby?
- 7. C++ sugerencias marco de registro
- 8. ¿Cuál es el marco Java web MVC más minimalista?
- 9. ¿Cuál es el ORM utilizado por yii?
- 10. ¿Alguien ha utilizado el marco rhomobile?
- 11. ¿Cuál es el método de encriptación utilizado en/etc/shadow?
- 12. ¿Cuál es el JsonConverter predeterminado utilizado en JSON.NET?
- 13. C++ design: cómo caché más reciente utilizado
- 14. ¿Cuál es el equivalente al registro BP (Puntero de Marco) en procesadores ARM?
- 15. ¿Cuál es el método más utilizado para acceder a la base de datos desde C# hoy en día
- 16. ¿Cuál es el mejor y más preciso temporizador en C++?
- 17. ¿Cuál es el marco ORM más fácil de usar para PHP?
- 18. ¿Cuál es el método más utilizado por los navegadores para insertar videos?
- 19. ¿Cuál es el propósito del marco de CoreFoundation?
- 20. El peerID utilizado en el marco de GameKit, ¿es siempre único para cada dispositivo?
- 21. ¿Cuál es la forma más fácil de duplicar un registro de registro activo?
- 22. ¿Cuál es la forma más rápida de leer el registro de eventos en la máquina remota?
- 23. C# trace o registro más simple
- 24. Valgrind utilizado en el desarrollo de C++?
- 25. ¿Cuál es el marco AOP más simple y menos dependiente en Java?
- 26. ¿Cuál es el mejor marco de servicios web de Java?
- 27. ¿Cuál es el nuevo marco de Tornado de Facebook?
- 28. ¿Cuál es el controlador MongoDB más maduro para C#?
- 29. Incompatibilidad con el marco de registro
- 30. ¿Cuál es el ejecutable de Windows (PE) más pequeño posible?
le daría ReflectInsight un intento http: // http: //insightextensions.codeplex.com/ – code5
Hay una lista de los marcos de registro aquí: https://github.com/quozd/awesome-dotnet/blob /master/README.md#logging –