Logging
- Área: Librerías y Utilidades para Aplicaciones Java
- Tipo de pauta: Directriz
- Carácter de la pauta: Obligatoria
Todos los desarrolladores , en todas las fases de un desarrollo necesitan conocer el estado del mismo. Es muy habitual la comunicación , por parte del sistema, mediante mensajes de salida de situaciones anómalas en el desarrollo, del resultado de las pruebas, etc… Por lo tanto existe la necesidad de estandarizar este sistema de mensajes y de dar una potencialidad necesaria para cubrir todas las exigencias de los desarrolladores.
Desde el punto de vista de un desarrollador , una herramienta de logging debe de cumplir con los siguientes requisitos:
- Categorización de los mensajes en función de la prioridad de los mismos
- Habilitar o deshabilitar logs en función de niveles de usuario
- Posibilitar diferentes ubicaciones para las salidas de los mensajes.
- Poder dar un formato de salida a los mensajes que se lanzan
La utilización de una gestión de logs conlleva un buen número de ventajas,facilita la comprensión del código, la mantenibilidad del sistema, la detección y corrección de errores, etc. Madeja propone las siguientes pautas.
Pautas
Título | Carácter |
---|---|
Utilización del System.out | Obligatoria |
Configuración del servidor de aplicaciones | Obligatoria |
Configuracion a nivel aplicación | Obligatoria |
Librerias recomendadas | Obligatoria |
Niveles de prioridad | Obligatoria |
Utilización del System.out
No se debe hacer invocación directa a consola, por lo que se descartan mecanismos de log como:
System.out.println(“Consultando el API”);
Este tipo de llamadas sólo serán aceptadas en pruebas unitarias de JUnit.
Configuración del servidor de aplicaciones
Será necesaria la configuración del servidor de aplicaciones para permitir loggers independientes por aplicación.
Configuracion a nivel aplicación
A nivel de aplicación se deberá configurar el uso de un logger independiente para ella.
Librerias recomendadas
Se deberá utilizar conjuntamente Apache Commons Logging y Log4J, utilizando los diferentes niveles de prioridad.
Niveles de prioridad
Los desarrollos deben disponer de variedad de logs, lo cual ayuda a la comprensión del código, la mantenibilidad del sistema, la detección y corrección de errores, etc. Se exigirá el uso de un framework de logs que garantice poder realizar apuntes de log con diferentes niveles de prioridad, como son:
- DEBUG: trazas de la aplicación en depuración
- INFO: información
- WARN: advertencia (posible fallo)
- ERROR: error del sistema
- FATAL: error bloqueante que puede tener efectos secundarios en el sistema (por ejemplo, no poder conectarnos a una base de datos generará probablemente un bloqueo de muchas funcionalidades del sistema)
Para dar soporte a esta necesidades , recomendamos el uso conjunto de un componente y una librería asociada.
Contenidos relacionados
Código | Título | Tipo | Carácter |
---|---|---|---|
RECU-0225 | Commons Logging | Ficha Técnica | Recomendado |
RECU-0226 | Log4j | Ficha Técnica | Recomendado |