Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.
Creador de Girillo, una forma alternativa de comunicarse.
Charla sobre desarrollo de aplicaciones en Android
Técnico especialista en informática de empresa (CEU)
Ingeniero Técnico en Informática de Sistemas (UPM) *
Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación
Regístrate para votar
Log4J: Cómo crear distintos logs en función de su naturaleza y nivel
Una tarea fundamental en todo proyecto informático es la generación de log o trazas, generalmente para detectar y solucionar los posibles errores que pudieran producirse.
En mi experiencia en este sector he observado que normalmente los programadores dejan sus logs en un archivo mismo archivo independientemente de su naturaleza (entrada/salida, seguridad, interfaz gráfico, etc.) y nivel (debug, info, warn, etc.). Yo particularmente no estoy del todo deacuerdo con esté método. Soy más partidario de crear varios archivos y así no mezclar peras con manzanas. Con esto consigo detectar los problemas más rapidamente, así como para tener mayor flexibilidad a la hora de cambiar los niveles de traceo en determinadas partes de la aplicación según las necesidades.
Una aplicación medianamente bien diseñada organizará sus clases en paquetes en donde las clases tienen algún tipo de relacción semántica.
Por ejemplo, las clases de acceso a datos no deberían estar en el mismo paquete que clases de interfaz gráfica.
En este tutorial vamos a generar 4 archivos de Logs:
tuApplicationName.log:
En este archivo dejaremos todas las salidas de log, independientemente de su naturaleza y nivel.tuApplicationNameErrorFile.log:
En este archivo dejaremos las salidas de avisos o errores (No los de debug o info) de cualquier parte de la aplicacion.tuApplicationNameErrorFile1.log:
En este archivo dejaremos las salidas de avisos o errores (No los de debug o info) de cualquier clase del paquetecom.autentia.tutoriales.log4j.paquete1o sus subpaquetes.tuApplicationNameErrorFile2.log:
En este archivo dejaremos las salidas de avisos o errores (No los de debug o info) de cualquier clase del paquetecom.autentia.tutoriales.log4j.paquete2o sus subpaquetes.
En el paquete com.autentia.tutoriales.log4j.paquete1, agruparíamos las clases con una determinada funcionalidad.
En el paquete com.autentia.tutoriales.log4j.paquete2, agruparíamos las clases con una determinada funcionalidad.
Archivo de configuración de Log4j: autentiaLog4jTutorial.xml
tuApplicationName.log:
2008-02-10 12:01:35 [DEBUG] [com.autentia.tutoriales.log4j.EjemploLog.main(EjemploLog.java:25)] Salida DEBUG desde la clase EjemploLog 2008-02-10 12:01:35 [ERROR] [com.autentia.tutoriales.log4j.EjemploLog.main(EjemploLog.java:28)] Salida ERROR desde la clase EjemploLog 2008-02-10 12:01:35 [DEBUG] [com.autentia.tutoriales.log4j.paquete1.Clase1.(Clase1.java:18)] Salida debug desde la clase 1 2008-02-10 12:01:35 [ERROR] [com.autentia.tutoriales.log4j.paquete1.Clase1. (Clase1.java:20)] Salida error desde la clase 1 2008-02-10 12:01:35 [DEBUG] [com.autentia.tutoriales.log4j.paquete2.Clase2. (Clase2.java:17)] Salida debug desde la clase 2 2008-02-10 12:01:35 [ERROR] [com.autentia.tutoriales.log4j.paquete2.Clase2. (Clase2.java:19)] Salida error desde la clase 2
tuApplicationNameErrorFile.log
2008-02-10 12:01:35 [ERROR] [com.autentia.tutoriales.log4j.EjemploLog.main(EjemploLog.java:28)] Salida ERROR desde la clase EjemploLog 2008-02-10 12:01:35 [ERROR] [com.autentia.tutoriales.log4j.paquete1.Clase1.(Clase1.java:20)] Salida error desde la clase 1 2008-02-10 12:01:35 [ERROR] [com.autentia.tutoriales.log4j.paquete2.Clase2. (Clase2.java:19)] Salida error desde la clase 2
tuApplicationNameErrorFile1.log
2008-02-10 12:01:35 [ERROR] [com.autentia.tutoriales.log4j.paquete1.Clase1.(Clase1.java:20)] Salida error desde la clase 1
tuApplicationNameErrorFile2.log
2008-02-10 12:01:35 [ERROR] [com.autentia.tutoriales.log4j.paquete2.Clase2.(Clase2.java:19)] Salida error desde la clase 2
Conclusiones
La gestión de trazas es una parte fundamental de toda aplicación, por lo que es recomendable establecer alguna política o pautas al respecto dentro del proyecto.
Recordar que la mayor parte del dinero de un sistema informático se va en mantenimientos, así que un buen sistema de logs nos hará la vida más fácil y nos permitirá ahorrar muchos esfuerzos (dinerito).
Carlos García Pérez. Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.
cgpcosmad@gmail.com
Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.








