Talend Open Studio for ESB est un outil gratuit à télécharger basé sur des composants visuels conçus pour intégrer des applications et des systèmes d'entreprise dans une infrastructure d'entreprise hétérogène.
Open Studio for ESB est conditionnellement divisé en deux parties:
- Studio - un IDE basé sur Eclipse dans lequel la solution est développée (Talend Job);
- Runtime est une version basée sur Apache Karaf qui est un conteneur de microservices.
Les produits Talend ont un composant spécial pour la journalisation: tLogRow, cependant, l'exportation vers log4j est délibérément disponible uniquement dans les produits distribués par abonnement.
Journal Studio
Pour obtenir le journal des composants lors du débogage d'un projet, vous devez modifier la priorité dans le fichier de configuration et, si nécessaire, activer les extensions requises dans le fichier de configuration: Fichier → Modifier → Modifier les propriétés du projet → Log4j
Donc, pour obtenir les journaux du composant tRESTRequest, activez simplement Paramètres avancés → Journaliser les messages dans le composant et changez la priorité en "info":
<!-- Root Logger --> <root> <priority value ="info"/> ... </root>
Lors de l'exécution d'une tâche, trois types d'événements peuvent être interceptés:
- Événement du composant tWarn - un événement dans le flux de travail;
- Événement du composant tDie - un événement mettant fin à un flux de travail;
- Événement d'exception Java - exception interne dans le flux de travail;
Pour intercepter des événements, il existe un composant tLogCatcher, qui a la possibilité de sélectionner une combinaison de types d'événements interceptés.
Fondamentalement, tous ces événements génèrent des messages texte dans la console de débogage IDE.
Cependant, si vous devez lire ces messages dans Runtime, vous devez compléter le brouillon de travail avec une sous-tâche distincte:

Le tJavaRow doit contenir le code suivant ou similaire:
if(input_row.message != null){ org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(this.getClass()); if(input_row.type != null) org.apache.log4j.MDC.put("subjectTag", input_row.type); switch (input_row.priority){ case 0: case 1: case 2: case 3: log.info(input_row.message); break; case 4: log.warn(input_row.message); break; case 5: log.error(input_row.message); break; default: log.fatal(input_row.message); break; } }
Ainsi, les événements tLogCatcher entreront non seulement dans la console IDE, mais également dans le log4j du service IDE généré dans Runtime.
Notez que le tLogCatcher n'intercepte pas les événements SubJob dans le cadre du Job Talend en cours. Par conséquent, la conception donnée ci-dessus doit être présente dans chaque sous-travail où un journal est requis.
Journal d'exécution
Le journal d'exécution est généralement écrit dans $ {karaf.home} /log/tesb.log
Du point de vue de Talend Runtime, $ {karaf.home} est un sous-répertoire de ./Runtime_ESBSE/container
La configuration de la formation du journal se fait dans le fichier $ {karaf.home} /etc/org.ops4j.pax.logging.cfg
Pour configurer le journal dans Karaf, il est préférable de vous familiariser avec la documentation officielle: http://karaf.apache.org/manual/latest/#_log
Si nécessaire, le journal local peut être exporté vers un système externe, par exemple en utilisant un battement de fichier externe ou en utilisant l'outil de décanteur Karaf Apache interne
Le but de cet article est de permettre aux débutants de simplifier le travail avec Talend OS en termes de journalisation lors du développement et du déploiement de leurs solutions.