2011-02-02 9 views
12

duplicados posibles:
Where/what level should logging code go?
Debug Levels¿Qué información incluir en cada nivel de registro?

¿Hay una convención, un estándar o una guía ampliamente utilizado que le ayudará con el registro en Java? Específicamente, qué incluir en cada nivel (detallado, depurar, ... etc.) en lugar del mecanismo real de registro.

Hay muchas guías que hay que incluir en cada nivel de registro, pero ninguna de ellas es específica; son todos vagos, y esto hace que sea difícil "seguir órdenes".

Cualquier consejo sería apreciado.

+0

Relacionado: [¿Qué registrar cuando se produce una excepción?] (Http://stackoverflow.com/questions/2574709/what-to-log-when-an-exception-occurs) –

+0

@ Péter: Esto parece una pregunta diferente de ambos, pero más relacionada con el segundo. –

Respuesta

11

Es sujetos a la interpretación personal, pero la mía es (en orden de mejor a coursest):

  • traza - El registro cronológico más nivel. Se puede utilizar para registrar información muy específica que solo es relevante en un escenario de depuración verdadero, por ejemplo, registrar cada acceso a la base de datos o cada llamada HTTP, etc.
  • Depurar - Información para ayudarlo a depurar su programa. Por ejemplo, cada vez que ingrese una rutina de procesamiento por lotes vacía su lote o un nuevo archivo se crea en el disco etc.
  • Información - flujo de aplicación general, como "A partir aplicación", "que conecta a DB", "registrando ...". En resumen, información que debería ayudar a cualquier observador a comprender qué hace la aplicación en general.
  • Warn - Advierte de errores que pueden recuperarse. Como no analizar una fecha o usar una rutina insegura. Sin embargo, tenga en cuenta que aún debemos tratar de obedecer el principio de falla y no ocultar, p. Ej., Errores de configuración con mensaje de advertencia, aunque la aplicación nos proporcione un valor predeterminado.
  • Error - Indica un error a menudo irrecuperable. Como no abrir una conexión de base de datos.
  • Fatal/Crítico Se utiliza para registrar un error que la aplicación no puede recuperar, lo que puede conducir a la finalización inmediata del programa.

Al final le toca a usted definir lo que más le conviene. Personalmente, ejecuto la mayoría del sistema de producción con nivel de registro de Información, donde estoy más interesado en seguir la lógica principal de las aplicaciones, y por supuesto atrapar todas las advertencias/errores.

Excepto por el desorden de códigos, no existe el exceso de registro. Todos los registros que te ayudan a reproducir o comprender mejor los problemas son buenos registros. En una nota de rendimiento, la mayoría de los sistemas de registro (por ejemplo, log4j) permiten configurar qué nivel agregar realmente al registro físico, lo que es una gran cosa.

+0

Tiene el rumbo correcto y el camino equivocado: la huella está bien, el error es grueso. –

+0

Muy bien, arreglado. Gracias por señalar eso. –

0

Por lo que vale la pena, estamos usando los siguientes niveles de registro: mensajes de nivel

  • DEBUG dan/información específica altamente detallado y, o, sólo es útil para el seguimiento de problemas.
  • Los mensajes de información proporcionan información general sobre lo que está haciendo el sistema. (por ejemplo, archivo de procesamiento X)
  • Los mensajes de advertencia advierten al usuario sobre cosas que no son ideales, pero que no deberían afectar al sistema. (por ejemplo, la configuración X se perdió, utilizando el valor predeterminado)
  • Los mensajes de ERROR informan al usuario de que algo salió mal, pero el sistema debería ser capaz de hacer frente. (por ejemplo, conexión perdida, pero volverá a intentarlo)
  • Los mensajes CRÍTICOS informan al usuario cuando se produce un error que no se puede recuperar. (es decir, estoy a punto de abortar la tarea actual o bloqueo)

Creo que lo más importante con los niveles de registro es encontrar un esquema, documentarlo y atenerse a él. Aunque sería lógico que el nivel de registro sea uniforme entre los programas, siempre que haya utilizado el sentido común al definir sus niveles de registro, los usuarios tolerarán una cierta cantidad de varianza entre los programas.

0

Registro simple lo que usted cree que es importante si tuviera que volver más tarde y necesita leer los registros. Esto, por supuesto, significa que su Object.toStrings ahora debe ser agradable y legible y no es un montón de basura imposible de leer. Esto también significa que hay que hacer las cosas sensibles como las cuerdas citando etc ..

Cuestiones relacionadas