# Exporter des logs vers un dossier externe

Vous pouvez exporter les logs du moteur vers un dossier dédié, pour qu'un outil tiers gère les fichiers de log.

Vous devez assurer la maintenance et le nettoyage de ce dossier vous-même.

## Procédure

1. Ouvrez le fichier &lt;RemoteEngineInstallationDirectory&gt;/etc/org.ops4j.pax.logging.cfg et ajoutez les lignes suivantes :
   ### Exemple
   ```
   # Activate the External folder appender.
   # Be sure to configure/change the MY_EXTERNAL_FOLDER to have logs at the place you want.
   log4j2.rootLogger.appenderRef.ExternalFolder.ref = ExternalFolder
   # External folder appender
   log4j2.appender.external.type = Routing
   log4j2.appender.external.name = ExternalFolder
   log4j2.appender.external.rewritePolicy.type = TalendKarafRewritePolicy
   log4j2.appender.external.routes.type = Routes
   log4j2.appender.external.routes.pattern = $\\{ctx:flowExecutionId\\}
   log4j2.appender.external.routes.route1.type = Route
   log4j2.appender.external.routes.route1.rolling.type = RollingFile
   log4j2.appender.external.routes.route1.rolling.name = flowexecution-$\\{ctx:flowExecutionId\\}
   log4j2.appender.external.routes.route1.rolling.fileName = MY_EXTERNAL_FOLDER/$\\{ctx:flowID\\}/$\\{ctx:flowExecutionId\\}.log
   log4j2.appender.external.routes.route1.rolling.filePattern = MY_EXTERNAL_FOLDER/$\\{ctx:flowID\\}/$\\{ctx:flowExecutionId\\}.log.%i
   # Use the 3 lines below for json pattern
   log4j2.appender.external.routes.route1.rolling.layout.type = JsonTemplateLayout
   log4j2.appender.external.routes.route1.rolling.layout.eventTemplateUri=${karaf.base.uri}/etc/jsonLogMinTemplate.json
   log4j2.appender.external.routes.route1.rolling.layout.stackTraceElementTemplateUri=${karaf.base.uri}/etc/StackTraceElementLayout.json
   # Uncomment two lines below for text pattern 
   #log4j2.appender.external.routes.route1.rolling.layout.type = PatternLayout
   #log4j2.appender.external.routes.route1.rolling.layout.pattern = ${log4j2.pattern}
   log4j2.appender.external.routes.route1.rolling.policy.type = SizeBasedTriggeringPolicy
   log4j2.appender.external.routes.route1.rolling.policy.size = 100MB
   log4j2.appender.external.routes.route1.rolling.strategy.type = DefaultRolloverStrategy
   log4j2.appender.external.routes.route1.rolling.strategy.max = 1
   # By having this set to ${ctx:flowExecutionId} it will match when flowExecutionId is not set in the context
   log4j2.appender.external.routes.route2.type = Route
   log4j2.appender.external.routes.route2.key = $\\{ctx:flowExecutionId\\}
   log4j2.appender.external.routes.route2.null.type = CountingNoOp
   log4j2.appender.external.routes.route2.null.name = CountingNoOp
   ```

   Ce code est un exemple. Lorsque vous le copiez pour l'utiliser dans votre système, n'oubliez pas de modifier MY\_EXTERNAL\_FOLDER pour utiliser le répertoire réel dans lequel stocker les logs, par exemple /home/usr/my-re-log sous Linux ou D:/remote-engine/my-log-folder sous Windows.

   La partie $\\{ctx:flowID\\}/$\\{ctx:flowExecutionId\\} représente les variables à utiliser pour nommer les fichiers de log. Si vous n'avez pas besoin d'un nom de fichier généré dynamiquement, remplacez-le par du plein texte.

   Après toutes ces modifications, les lignes log4j2.appender.external.routes.route1.rolling.fileName et log4j2.appender.external.routes.route1.rolling.filePattern ressemblent à ceci :
   * sous Windows :
     ```
     log4j2.appender.external.routes.route1.rolling.fileName = C:/my-personal-folder/my-log-foler/my-log.log
     log4j2.appender.external.routes.route1.rolling.filePattern = C:/my-personal-folder/my-log-foler/my-log.log.%i
     ```
   * sous Linux :
     ```
     log4j2.appender.external.routes.route1.rolling.fileName = /home/usr/my-re-log/my-log.log
     log4j2.appender.external.routes.route1.rolling.filePattern = /home/usr/my-re-log/my-log.log.%i
     ```
2. Sauvegardez le fichier.