Utilitaires
Scripts
Divers
Jeux
Rechercher
Quillevere.net
Réflexions informatiques

Utiliser Log4J sur Talend

16/01/2021

L'utilisation de Log4J pour tracer les logs Talend n'est pas toujours simple à mettre en place. Voici le fichier de paramétrage Log4J2 que j'ai créé offrant les atouts suivants :

  • Affichage des lignes de log dans la console (avec seulement l'heure et le niveau de log)
  • Ecriture des lignes de log dans un fichier, avec la date/heure et le niveau de log
  • Création d'un fichier de log par lancement, afin de séparer les exécutions
  • Rotation des fichiers de logs : seulement les 200 derniers fichiers sont conservés
  • Le dernier fichier de log créé se nomme "rapport.log"
  • Les fichiers sont écrits dans un répertoire :
    • soit dans le chemin relatif .. / .. / log par rapport au chemin d'exécution
    • soit dans le répertoire précisé par la variable d'environnement nommée "LOG4J"

Pour l'utiliser :

  • Allez dans le menu Fichier puis Modifier les propriétés du projet

  • Cliquez sur Log4J dans la fenêtre de gauche
  • Cochez Activer Log4J dans les composants, vérifiez que log4j2 est bien sélectionné

  • Puis collez le code ci-dessous :
    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="info" name="XMLConfigTest" packages="org.apache.logging.log4j.test">
        <!-- Utilise la variable d'environnement utilisateur LOG4J ou le chemin relatif si n'existe pas -->
        <Properties>
     <Property name="log-path">${env:LOG4J:-./../../log}/</Property>
     </Properties>
     <ThresholdFilter level="info"/>

     <Appenders>
        <!-- Paramètre d'affichage de la console-->
     <Console name="sortie_console">
         <PatternLayout pattern="%d{HH:mm:ss};%-5p;%m%n"/>
     </Console>
        <!-- fileName : nom du fichier actuel -->  
        <!-- filePattern : nom des fichiers anciens -->
        <RollingFile
            name="liste_fichiers"
            fileName="${log-path}/rapport.log"
            filePattern="${log-path}/rapport_%d{yyyy-MM-dd_HH-mm-ss}.log"
            ignoreExceptions="false"
            >
            <!-- Syntaxe d'une ligne dans le fichier -->
            <PatternLayout>
                <Pattern>%d{yyyy-MM-dd HH:mm:ss};%-5p;%m%n</Pattern>
            </PatternLayout>
           
            <!-- Crée un fichier log4j à chaque démarrage du programme -->
            <Policies>
                <OnStartupTriggeringPolicy />
            </Policies>

            <!-- Ne conserve que les 200 derniers fichiers logs -->
            <DefaultRolloverStrategy>
     <Delete basePath="${log-path}" maxDepth="1">
     <IfFileName glob="rapport_*.log" />
     <IfAccumulatedFileCount exceeds="200" />
     </Delete>
     </DefaultRolloverStrategy>
        </RollingFile> 
           
     </Appenders>
     <Loggers>

     <Root level="info">
     <AppenderRef ref="liste_fichiers"/>
     <AppenderRef ref="sortie_console"/>
     </Root>
     </Loggers>
    </Configuration>

Ensuite, dans le projet, vous pouvez utiliser log.trace, log.debug, log.info, log.warn, log.error dans un tJava afin d'envoyer des instructions à log4J

Utiliser Log4J depuis une routine

Pour utiliser Log4J dans une routine et lui appliquer les mêmes paramètres que précédemment, il faut :

  • Créez la variable statique :
    public static org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger();
  • Validez l'import de la livrairie Log4J2

  • Appelez "log.info" avec les paramètres souhaités.
Dernière modification le 12/03/2021 - Quillevere.net

Rechercher sur le site

fr en rss RSS info Informations