Pregunta Error al iniciar sesión en C #


Estoy haciendo mi cambio de codificación en C ++ a C #. Necesito reemplazar mi sistema macro de registro / reporte de errores C ++ con algo similar en C #.

En mi fuente C ++ puedo escribir

LOGERR ("Algún error"); o LOGERR ("Error con las entradas% s y% d", stringvar, intvar);

El código de la biblioteca macro y de apoyo pasa el mensaje formateado (posiblemente varargs) a una base de datos junto con el archivo de origen, la línea de origen, el nombre de usuario y la hora. Los mismos datos también se incluyen en una estructura de datos para informar posteriormente al usuario.

¿Alguien tiene fragmentos de código C o punteros a ejemplos que hacen este informe / registro básico de errores?

Editar:  En el momento en que hice esta pregunta, era realmente nuevo en .NET y desconocía System.Diagnostics.Trace. System.Diagnostics.Trace era lo que necesitaba en ese momento. Desde entonces, he usado log4net en proyectos donde los requisitos de registro eran más grandes y más complejos. Simplemente edite ese archivo de configuración XML de 500 líneas y log4net hará todo lo que necesite :)


73
2017-09-29 04:53


origen


Respuestas:


Muchos de los defensores de log4net aquí, así que estoy seguro de que esto se ignorará, pero agregaré mi propia preferencia:

System.Diagnostics.Trace

Esto incluye oyentes que escuchan tu Trace() métodos, y luego escribir en un archivo de registro / ventana de salida / registro de eventos, los que están incluidos en el marco son DefaultTraceListener, TextWriterTraceListener y el EventLogTraceListener. Le permite especificar niveles (Advertencia, Error, Información) y categorías.

Clase de seguimiento en MSDN
Escribir en el registro de eventos en una aplicación web
UdpTraceListener - escribe mensajes XML compatibles con log4net en un visor de registro como log2console


72
2017-09-29 09:41



Recomiendo encarecidamente mirar log4Net. Esta enviar cubre la mayoría de lo que necesita para comenzar.


40
2017-09-29 04:59



Otra buena biblioteca de registro es NLog, que puede iniciar sesión en muchos lugares diferentes, como archivos, bases de datos, registrador de eventos, etc.


15
2017-09-29 09:38



yo suelo Marco de registro del individuo del objeto--como lo hacen la mayoría de las personas que lo intentan. Este chico tiene algunos interesantes comentarios al respecto.


14
2018-02-08 04:17



Biblioteca de empresa es una alternativa sólida a log4net y ofrece un montón de otras capacidades también (almacenamiento en caché, manejo de excepciones, validación, etc.). Lo uso en casi todos los proyectos que construyo.

Muy recomendable.


11
2017-09-29 05:08



Aunque personalmente lo odio, log4net parece ser el estándar de facto para el registro de C #. Uso de muestra:

log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program));
log.Error(“Some error”);
log.ErrorFormat("Error with inputs {0} and {1}", stringvar, intvar);

5
2017-09-29 04:59



Como dije en otro hilo, hemos estado usando Marco de registro del individuo del objeto en aplicaciones de producción múltiples durante varios años. Es súper fácil de usar y extender.


5
2017-08-11 01:35