2009-03-23 11 views

Respuesta

16

Consulte el Microsoft Enterprise Library. Incluye el Logging Application Block y esa documentación puede ser lo que estás buscando. Puede ver el MSDN Documentation sin tener que instalar primero la biblioteca. Específicamente, vea Key Scenarios y Design of the Logging Application Block para responder su pregunta (tal vez incluso si no está usando .NET).

ACTUALIZACIÓN (23 de abril de 2013) Ver Embracing Semantic Logging utilizando el nuevo Semantic Logging Application Block

+1

lo recomiendo mucho las personas que toman un vistazo a la semántica de aplicación del bloque de registro antes de la aplicación de registro de bloque. Los beneficios son sustanciales. –

+0

, así que vengo en busca de las mejores prácticas de registro ... y obtengo un producto corporativo empujado por mi garganta? ¿lol en serio? – abbood

+0

Sí, en serio. Es gratis y está muy bien organizado. Nadie te está forzando a usarlo. Pero si lees los documentos con una mente abierta, aprenderás algunas buenas prácticas sin importar qué decidas usar al final. –

3

hay un montón de marcos de registro que hay entre ellos y log4net log4j, pero el más adecuado para usted dependerá de su plataforma y sistema.

Las mejores técnicas de registro dependerán en gran medida de su plataforma y del diseño de su sistema. Necesita saber/decidir cuánta información necesita para diagnosticar un tipo particular de problema. En general, debe instrumentar su código de una manera que no requiera mucha repetición o modificación de código. Los marcos de registro en .NET que usan clases y métodos atribuidos son un buen ejemplo de instrumentación de bajo impacto. También debe poder modificar el nivel de registro (Bajo a Detallado) a través de la configuración sin tener que cerrar o reiniciar ningún servicio.

4

Algunos consejos:

  • de registro no más de lo necesario en la liberación/producción
  • registro de errores nunca, si es posible hacer esto:
    • operación de registro de puesta en var temp (vector/lista)
    • al final se produce si no hay errores, descartan los registros, en otro caso, enviar al archivo de registro
  • crear bandera para controlar el nivel de información para iniciar la sesión
  • control de la conducta de registro en el entorno de producción/desarrollo
  • control de acceso concurrencia al archivo de registro
  • control de la cantidad de registro de archivo largo se necesita
  • control de la cantidad de tiempo del archivo de registro se debe mantener
  • veces es necesario llevar a cabo la verificación del rendimiento, puesto temporizadores cuando sea necesario
+0

¿tiene algún ejemplo de registro de "vector" que describa anteriormente? – EightyEight

+0

No puedo proporcionar fuentes internas, pero creo que es muy simple implementar un búfer usando el vector , solo inserte los eventos en el contenedor. – lsalamon

+0

Gracias, entiendo el concepto, pero esperaba que alguien ya haya tenido problemas. Encontré un grupo de registradores para Ruby que tienen un concepto de "contexto", pero ninguno de ellos es lo suficientemente sofisticado como para volcar la información de rastreo en caso de un error dentro del contexto. – EightyEight

5

Un buen artículo está escrito en este por Effective logging practices ease enterprise development.

El punto crucial es:

  1. Conocer la necesidad de la tala.
  2. Comprenda las opciones disponibles y lo que más le convenga (varía según la plataforma/sistema operativo, etc.)
  3. Planifique la estrategia con antelación antes de la implementación.
  4. Continua revisando los cambios de make.
+1

Un poco de Apache Log4J específico, pero tiene algunas partes útiles. –

+4

El enlace está roto ... –

+0

¡Ha solucionado el problema! –

2

Serilog es otra solución de registro estructurado que se ha popularizado desde que se hizo la pregunta por primera vez.

En su entrevista, el Sr. Blumhardt habla de la construcción de la biblioteca como resultado de pasar por el dolor de la tala de que todos hemos experimentado. Hablan en el programa sobre la tala simple durante el desarrollo inicial y la formalización de la tala a medida que el proyecto madura. Lo bueno y puede agregar a la base de conocimiento de mejores prácticas planteada en la pregunta.

Desde el sitio web:

Al igual que otras bibliotecas de registro para .NET, Serilog proporciona diagnóstico registro de archivos, la consola, y así sucesivamente. Es fácil de configurar, tiene una API limpia de y es portátil entre plataformas .NET recientes.

A diferencia de otras bibliotecas de registro para .NET, Serilog está construido con datos de registro estructurados en mente. Los parámetros pasados ​​junto con los mensajes de registro no se procesan destructivamente en un formato de texto. En su lugar, son preservado como datos estructurados que se puede escribir en forma de documento a un almacén de datos NoSQL

2

Si realmente desea sumergirse en la filosofía sobre el tema, trate "Do Not Believe in Structured Logging" en el blog de Miloslav Trmač.

"... estas lecciones fueron aprendidas por las malas ..."

Cuestiones relacionadas