91 007 17 22 - 09:30 a 14:00 y de 16:00 a 21:00 horas.info@asociacionaepi.es

Mini curso de Log4j – Segunda parte

Posteado en: blog Iniciado por

Mini curso de Log4j – Segunda parte

Paso 3: Personalizando los mensajes


Veremos un ejemplo más avanzado para ilustrar estos conceptos. Modifiquemos el archivo .properties para que tenga el siguiente contenido:


log4j.rootLogger=debug, stdout, R


log4j.appender.stdout=org.apache.log4j.ConsoleAppender


log4j.appender.stdout.layout=org.apache.log4j.PatternLayout


log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n


log4j.appender.R=org.apache.log4j.RollingFileAppender


log4j.appender.R.File=example.log


log4j.appender.R.Append=false


log4j.appender.R.MaxFileSize=100KB


log4j.appender.R.MaxBackupIndex=1


log4j.appender.R.layout=org.apache.log4j.PatternLayout


log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n


Destallaremos cada línea de esta configuración:

log4j.rootLogger=debug, stdout, R
Aquí estamos definiendo que nuestro Logger serán stdout y R. Ambos serán para atender el nivel debug.

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
En esta línea el appender stdout será de tipo ConsoleAppender. Esta clase se encargará de mostrar los mensajes a la pantalla.

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
La clase “PatternLayout” nos permite configurar nuestro appender por una cadena. En el API del framework podemos ver más detalle de estas clases.

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
Aquí ya estamos definiendo nuestro formato el cual consiste en mostrar en un espacio de 5 caracteres (%5) el nivel del mensaje (p). Luego sigue de un espacio. Entre llaves mostrará el hilo que generó el mensaje (%t). Luego de un espacio, entre paréntesis el nombre del archivo fuente (%F) y después de dos puntos muestra la línea dentro del código fuente (%L). Después sigue un guión y luego muestra el mensaje que se ha mandado desde el programa. Finaliza con un salto de línea.

Tenemos otro appender que es el R. Este es de clase RollingFileAppender. Esta clase permite agregar a un archivo y si este llega a un límite especificado es renombrado y el registro seguirá en un archivo nuevo. Esto es muy útil si queremos mantener todos los registros de eventos partidos en archivos de un tamaño manejable.

log4j.appender.R=org.apache.log4j.RollingFileAppender


log4j.appender.R.File=example.log


log4j.appender.R.Append=false

Aquí estamos diciendo que el archivo que creará será “example.log”y que sobreescriba los mensajes cada vez que se ejecute la aplicación.

log4j.appender.R.MaxFileSize=100KB
Que tendrá un tamaño máximo de 100KB

log4j.appender.R.MaxBackupIndex=2
Y cuantos backups deberá crear antes de que el más antiguo deba borrarse.


log4j.appender.R.layout=org.apache.log4j.PatternLayout


log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

Aquí estamos definiendo el formato de salida que tendrá: la prioridad del evento (%p) seguido del nombre del thread que generó el evento (%t), el nombre completo de la clase incluyendo el paquete (%c) seguido de un guión y luego mensaje. Termina con una línea nueva.

Por último, agregaremos estas líneas a la configuración para enviar un email cuando suceda un error.

log4j.rootLogger=debug, stdout, R,email





....


log4j.appender.email.Threshold=error


log4j.appender.email=org.apache.log4j.net.SMTPAppender


log4j.appender.email.SMTPHost=smtp.provider.com


log4j.appender.email.From=events@jugperu.com


log4j.appender.email.To=user@jugperu.com


log4j.appender.email.Subject=Mensaje de Log4j!


log4j.appender.email.layout=org.apache.log4j.PatternLayout


log4j.appender.email.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

Para que este funcione deberemos de agregar la biblioteca de JavaMail.


Conclusiones

Cómo hemos visto, el cambio de la manera de registrar los eventos fue solo en el archivo .properties y no en nuestro programa. Muchas aplicaciones hechas en java que utilizamos – como el Tomcat – utilizan este framework de registro de mensajes. Puedes personalizar sus mensajes de acuerdo a tus exigencias. 


image_pdfimage_print

Leave a Reply

Uso de cookies

Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación y ofrecer contenidos y publicidad de interés. Al continuar con la navegación entendemos que se acepta nuestra política de privacidad y cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies