Estás en:

informaciónDESARROLLADO POR:

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

Fecha de publicación del tutorial: 2008-02-10
Tutorial visitado 8.883 veces8.883
Descargar el tutorial en PDF


Regístrate para votar
Share |
Log4J: Cómo crear distintos logs en función de su naturaleza y nivel

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 paquete com.autentia.tutoriales.log4j.paquete1 o sus subpaquetes.
  • tuApplicationNameErrorFile2.log:
    En este archivo dejaremos las salidas de avisos o errores (No los de debug o info) de cualquier clase del paquete com.autentia.tutoriales.log4j.paquete2 o 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

Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.


(Sólo para usuarios registrados)

» Registrate y accede a esta y otras ventajas «

Comentarios