# Konfigurieren eines JMS-Appenders

Sie möchten Logs ggf. an ein ActiveMQ-Backend-System senden.

Talend Cloud unterstützt das ActiveMQ TCP-Protokoll.

## 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.jms.type = Jms
   log4j2.appender.jms.name = JmsAppender
   log4j2.appender.jms.destinationBindingName= dynamicQueues/myQueueName1
   log4j2.appender.jms.factoryName=org.apache.activemq.jndi.ActiveMQInitialContextFactory
   log4j2.appender.jms.factoryBindingName=ConnectionFactory
   log4j2.appender.jms.providerURL=tcp://localhost:616162
   log4j2.appender.jms.userName=admin 
   log4j2.appender.jms.password=admin3
   log4j2.appender.jms.layout.type = JsonTemplateLayout
   log4j2.appender.jms.layout.eventTemplateUri=${karaf.base.uri}/etc/jsonLogMinTemplate.json
   log4j2.appender.jms.layout.stackTraceElementTemplateUri=${karaf.base.uri}/etc/StackTraceElementLayout.json

   log4j2.rootLogger.appenderRef.JmsAppender.ref = JmsAppender
   ```
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 Datei und geben Sie ihr den Namen jsonLogMinTemplateCustom.json.
   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 JMS-System für die Verwendung der neuen Vorlage jsonLogMinTemplateCustom.json anstelle der Standard-Vorlagendatei jsonLogMinTemplate.json.

[^1^](https://help.qlik.com/talend/de-DE/remote-engine-user-guide-linux/Cloud/config-extra-jms-appender#fnsrc_1) Dies ist ein Beispiel. Der Name destinationBindingName könnte dynamicQueues/myQueueName oder dynamicTopics/myTopicName lauten.

[^2^](https://help.qlik.com/talend/de-DE/remote-engine-user-guide-linux/Cloud/config-extra-jms-appender#fnsrc_2) Dies ist ein Beispiel. Sie müssen Ihren JMS-Host und den zugehörigen Port definieren.

[^3^](https://help.qlik.com/talend/de-DE/remote-engine-user-guide-linux/Cloud/config-extra-jms-appender#fnsrc_3) admin ist nur ein Beispiel für userName und password.