Log4J, SMTPAppender: Envio de trazas de log por email

2
17488

Log4J, SMTPAppender: Envio de trazas de log por email

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.

Aunque normalmente estos logs suelen dejarse en archivos de texto, en determinadas situaciones puede ser
necesario enterarse rápidamente de los errores sin tener que esperar a que el usuario nos lo notifique.
Una posible solución podría ser que el sistema nos enviase esos errores a una cuenta de correo electrónico.

En este tutorial vamos a aprender como hacerlo, para ello nos basaremos en una sencilla aplicación que genera errores por correo electrónico cuando una simulada compra de productos falla.

BuyCard: Simula un carrito de compra.

La siguiente aplicación de consola simula un proceso de compra de varios productos.

Si observa, en las líneas 35 y 36 se ve como la aplicación selecciona el Logger soporteCompras para notificar el error por correo.

Dependencias necesarias para ejecutar la aplicación:

Archivo de configuración de Log4j: autentiaLog4jSmtp.xml

  • BufferSize: Número de eventos de log que serán enviados por email, (por motivos de rendimiento).
  • Si observa en las líneas 16-20 debemos poner la configuración necesaria para realizar la conexión al servidor SMTP y enviar el correo electrónico.
  • Por defecto SMTPAppender almacenará en memoria todos eventos y los enviará cuando se reporte algún evento de nivel ERROR o superrior.
    En este ejemplo debido al valor de LevelMin sólo saldrán las trazas de error o superior.

En el archivo autentiaLog4jApp.log la aplicación deja todas las trazas que genera la aplicación.

Además de la salida que se observa en el log, la aplicación habrá enviado un correo electrónico con la información que aparecen en las líneas 25 y 26.

Tenga en cuenta que registrar un evento por correo es mucho más costoso en términos de rendimiento que hacerlo a un archivo, por lo que sería bueno realizar esta tarea en de forma asíncrona.

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).

Referencias y enlaces de interés

Carlos García Pérez. Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.

cgpcosmad@gmail.com

2 Comentarios

Dejar respuesta

Please enter your comment!
Please enter your name here