practices - log error c#
¿De qué sirve usar un marco de registro? (6)
Algo que los otros comentarios han omitido: si ya hay una biblioteca que hace lo que quiere, le ahorra tener que escribir el código .
Posiblemente está jugando a la semántica aquí: para mí, un "marco de trabajo de registro" generalmente es poco más que una clase que escribe mensajes de registro en un archivo ... entonces, lo que ha hecho es escribir su propio marco de registro. ¡Dado que lo has hecho, obviamente hay un punto en "usar un marco de registro"!
En última instancia, necesitará asegurarse de que maneja el registro simultáneo correctamente (bloqueando el flujo de salida), puede iniciar sesión en un archivo, syslog, etc., puede hacer un registro continuo, y así sucesivamente. Puede ahorrarse ese esfuerzo utilizando el código bien probado de otra persona.
Creo que me podría estar perdiendo el objetivo de tener un marco de trabajo para su aplicación. En todas las aplicaciones pequeñas, siempre escribí una pequeña clase de "Registro" y simplemente paso los mensajes de registro a un método que se escribe en un archivo.
¿Cuál es el propósito de un marco de registro de terceros como log4net? ¿Es seguridad de hilo con las operaciones de escritura de registro o me falta algo?
Dependiendo de cuán inteligente sea su propia implementación del sistema de registro.
En Java, si desea heredar tipos de registro, etc., podría ser una molestia y preferiría una herramienta de terceros como Log4J. Supongo que hay cosas similares para C #. De forma similar, si desea determinar el nivel de registro desde la línea de comando.
Si solo desea enrutar todo su System.out y controlar si se imprimen cada vez que compila, su propio registrador funcionaría perfectamente.
En una palabra: flexibilidad. Log4xxx le brinda la capacidad de realizar diferentes niveles de registro, registrar diferentes módulos de código en diferentes archivos, y puede confiar en que será confiable sin importar qué situación extraña le ocurra (lo que hará su registrador si el disco se queda sin espacio) ?)
Es posible que desee cambiar a log a un DB para obtener algún mensaje, o un sistema de alerta que le dé soporte a la persona pobre.
Sin embargo, lo más importante es que la mayoría de los marcos de registro le permiten especificar el nivel de registro de diferentes clases, por lo que no necesita cortar un nuevo binario cada vez que desea más / menos registro (ese registro detallado para el error que acaba de detectar en producción)
El sitio de Log4Net tiene más detalles
Esa es una excelente pregunta.
La primera razón es "¿por qué no?" Si está utilizando un marco de trabajo de registro, obtendrá los beneficios de mantenimiento de usar algo que ya está empaquetado.
La segunda razón es que el registro es sutil. Diferentes hilos, sesiones, clases e instancias de objetos pueden entrar en juego en el registro, y no quiere tener que resolver este problema sobre la marcha.
La tercera razón es que puede encontrar un cuello de botella de rendimiento en su código. Averiguar que su código es lento porque está escribiendo en un archivo sin almacenamiento en búfer o su disco duro se ha quedado sin espacio en el disco porque el registrador no se desplaza y comprime archivos viejos puede ser un dolor en el cuello.
La cuarta razón es que es posible que desee agregar a syslog, o escribir en una base de datos, o en un socket, o en diferentes archivos. Los marcos tienen esta funcionalidad incorporada.
Pero realmente, la primera respuesta es la mejor; hay muy poco beneficio para escribir uno propio, y un montón de inconvenientes.
Los marcos de registro ofrecen flexibilidad y le impiden reinventar la rueda. Sé que es muy fácil agregarlo a un archivo en cualquier idioma moderno, pero ¿tiene el registrador de fabricación casera múltiples objetivos? ¿Puedes activar y desactivar el inicio de sesión en tiempo de ejecución? ¿Por qué arriesgar una rueda pinchada cuando estas ruedas están disponibles de forma gratuita?