メイン コンテンツをスキップする 補完的コンテンツへスキップ

JMSアペンダーを設定

ActiveMQのバックエンドシステムにログを送りたい場合があります。

Talend CloudはActiveMQ TCPプロトコルをサポートしています。

手順

  1. <RemoteEngineInstallationDirectory>/etc/org.ops4j.pax.logging.cfgファイルを開き、次の行を追加します。

    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. ファイルを保存します。
  3. Mapped Diagnostic Context (MDC)情報をJSONテンプレートファイルに追加し、必要に応じて出力ログにMDC情報が含まれるようにします。このMDC情報にはTalend Management Consoleタスクの実行IDが含まれています。
    1. <RemoteEngineInstallationDirectory>/etcで、ファイルを作成してjsonLogMinTemplateCustom.jsonという名前を付けます。
    2. この新しいファイルに次の行を追加し、MDCリゾルバーを作成します。

      {
       "logMessage": \{"$resolver": "message", "stringified": true},
       "mdc": {
       "$resolver": "mdc"
       },
       "logTimestamp": \{"$resolver": "timestamp", "epoch": {"unit": "millis", "rounded": true}},
       "severity": \{"$resolver": "level", "field": "name"},
       "ticLogLevel": \{"$resolver": "source", "field": "ticLogLevel"},
       "bundle.name": \{"$resolver": "source", "field": "bundle.name"},
       "bundle.version": \{"$resolver": "source", "field": "bundle.version"}
      }
  4. お使いのJMSシステムを設定し、jsonLogMinTemplate.jsonではなく、新しいこのjsonLogMinTemplateCustom.jsonテンプレートが使われるようにします。
1 これは一例です。destinationBindingNameの部分はdynamicQueues/myQueueNamedynamicTopics/myTopicNameとなることもあります。
2 これは一例です。JMSホストとそのポートを定義する必要があります。
3 adminは、userNamepasswordの一例に過ぎません。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。