# Konfigurieren eines Syslog-Appenders

Sie möchten die Logs ggf. direkt an ein Syslog-, ein Syslog-ng- oder ein Rsyslog-System senden.

## Prozedur

1. Öffnen Sie die Datei &lt;RemoteEngineInstallationDirectory&gt;/etc/org.ops4j.pax.logging.cfg und fügen Sie folgende Zeilen hinzu:
   ### Example
   ```
   log4j2.appender.syslog.type = Syslog
   log4j2.appender.syslog.name = SyslogAppender
   log4j2.appender.syslog.format = RFC5424
   log4j2.appender.syslog.host = localhost
   log4j2.appender.syslog.port = 514
   log4j2.appender.syslog.protocol = TCP
   log4j2.appender.syslog.appName = RE
   log4j2.appender.syslog.includeMDC = true
   log4j2.appender.syslog.facility = LOCAL0
   log4j2.appender.syslog.layout.type = JsonTemplateLayout
   log4j2.appender.syslog.layout.eventTemplateUri=${karaf.base.uri}/etc/jsonLogMinTemplate.json
   log4j2.appender.syslog.layout.stackTraceElementTemplateUri=${karaf.base.uri}/etc/StackTraceElementLayout.json

   log4j2.rootLogger.appenderRef.SyslogAppender.ref = SyslogAppender
   ```
2. Speichern Sie die Datei.
3. Fügen Sie die MDC-Informationen (Mapped Diagnostic Context) in der JSON-Vorlagendatei hinzu, sodass die Ausgabe-Logs, sofern zutreffend, die MDC-Informationen enthalten. Die MDC-Informationen enthalten die Ausführungs-ID einer Task von Talend Management Console.
   1. Erstellen Sie in &lt;RemoteEngineInstallationDirectory&gt;/etc eine Konfigurationsdatei und geben Sie ihr den Namen jsonLogMinTemplateCustom.json.

      In dieser Datei konfigurieren Sie das Format der Ausgabe-Logs.
   2. Fügen Sie in der neuen Datei folgende Zeilen hinzu, um einen MDC-Resolver zu erstellen:
      ## Example
      ```
      {
         "logMessage": {
            "$resolver": "message", 
            "stringified": true
         },
         "my_mdc": { 
            "$resolver": "mdc" 
         },
         "logTimestamp": {
            "$resolver": "timestamp", 
            "epoch": {
               "unit": "millis", 
               "rounded": true
             }
         },
          "severity": {
             "$resolver": "level",
             "field": "name"
         },
          "ticLogLevel": {
             "$resolver": "source", 
             "field": "ticLogLevel"
         }
      }
      ```

      Im Beispiel wird ein JSON-Objekt definiert, um die Felder anzugeben, die in die MDC-Ausgabe eingeschlossen werden sollen. Das Objekt verwendet Schlüssel-Wert-Paare, in denen die Schlüssel die Ausgabefelder und die Werte die Resolver zum Befüllen dieser Felder angeben.

      Mit der Zeile "my\_mdc": { "$resolver": "mdc" } wird ein Feld mit dem Namen my\_mdc in der Ausgabe erstellt. Der Resolver mdc befüllt dieses Feld mit allen MDC-Feldern. Dadurch werden zusätzliche Diagnoseinformationen im Zusammenhang mit den Logs bereitgestellt. Ein Feld my\_mdc kann wie folgt aussehen:
      ```
      { 
        "accountID":"31e47fe5-abcd-4a80-a8b2-590123456789",
        "bundle.id":"289",
        "bundle.name":"org.talend.ipaas.engine.deployment-agent",
        "bundle.version":"2.13.7",
        "executionDestination":"REMOTE_ENGINE",
        "flowExecutionId":"ed31c1a8-abcd-4121-98bd-cd0123456789",
        "flowID":"61fbfc899e86410123456789",
        "flowVersion":"45.28",
        "remoteEngineId":"c62cd9a1-abcd-4580-8af1-220123456789",
        "userId":"user.talend.com",
        "workspaceId":"5ef6605b2632fd1234567890"
      }
      ```

      Um spezifische MDC-Felder wie flowID (zur Darstellung einer Task-ID) und flowExecutionId (zur Darstellung einer Task-Ausführungs-ID) abzurufen, ersetzen Sie die Zeile "my\_mdc": { "$resolver": "mdc" } mit:
      ```
      "taskId": {"$resolver": "mdc", "key": "flowID"},
      "executionId": {"$resolver": "mdc", "key": "flowExecutionId"},
      ```

      Die Feldnamen taskId und executionId sind nur Beispiele. Sie können beliebige aussagekräftige Namen verwenden, um die MDC-Felder zu erhalten, die Sie in die Ausgabe einschließen möchten.
4. Konfigurieren Sie Ihr Syslog-System für die Verwendung der neuen Vorlage jsonLogMinTemplateCustom.json anstelle der Standard-Vorlagendatei jsonLogMinTemplate.json.