Talend Open Studio y Log4j

Disponer de un log detallado y ordenado es de vital importancia para el diagnostico y resolución de incidencias, sobre todo si hablamos de herramientas capaces de procesar datos de forma masiva como es el caso de un ETL. En este aspecto las versiones «Libres» de Talend dejan mucho de desear, dado que sólo dan soporte de manera oficial a herramientas como Log4j en las versiones empresariales o de suscripción [1]. Con respecto a esto, la comunidad [2] ha desarrollado algunos componentes para facilitar el uso de log4j, en su versión 1.2. Entre estos componentes destacan los desarrollados por Benoît Courtine [3], que permiten establecer el fichero de configuración de log4j, escribir mensajes, permitiendo elegir los distintos niveles de log, y añadir listeners para la captura de errores. En el proyecto-tutorial que proporciona [4], se pueden apreciar las distintas funcionalidades y casos de uso que ofrecen los componentes desarrollados.
Basándonos en las herramientas antes citadas y atendiendo un poco al sentido común, se detallan algunas buenas prácticas referidas a las políticas de logging en Talend:

  1. Utilizar sólo un tInitLog4j en el job principal y marcar la opción de bloqueo de configuración. La configuración de Log4j se realiza a nivel global del proceso Java y con esto evitaremos sobreescrituras por error de la configuración.
    init_log
  2. Incluir tLogCatcher y tStatCatcher en cada Job para capturar posibles excepciones y los tiempos de respuesta de cada componente. Es importante establecer los distintos niveles de log en cada uno de los componentes, por ejemplo, en tStatCatcher el nivel de log puede ser un debug o info, dado que esos datos son meramente informativos. Sin embargo en el caso del componente tLogCatcher interesa establecer un nivel de log más restrictivo como error o warning.
    log_catcher
  3. En el caso de utilizar Joblets, no será necesario establecer «catchers» dentro del joblet, si el job que lo invoca lo tiene ya definido. El código de los joblets es incrustado dentro de los Jobs que lo invocan y por tanto heredan determinados comportamientos. Cuando se utilizan invocaciones a subjobs, realmente se está invocando a otro job distinto y entre ambos no comparten código.
  4. Utilizar los componentes tWarn con los niveles de log correctos.  Los componentes tLog4j permiten una configuración bastante más «fina» de los mensajes de log , permitiendo incluso establecer los loggers a los que dirigir los mensajes

Enlaces de Interés
[1] https://www.talendforge.org/forum/viewtopic.php?id=44156
[2] https://www.talendforge.org/
[3] https://github.com/bcourtine/Composants-Talend-Open-Studio/tree/master/Logging
[4] https://exchange.talend.com/#marketplaceproductoverview:gallery=marketplace%252F1&pi=marketplace%252F1%252Fproducts%252F342%252Fitems%252F479

 

Deja un comentario