ActiveMQのバックエンドシステムにログを送りたい場合があります。
Talend CloudはActiveMQ TCPプロトコルをサポートしています。
手順
-
<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
- ファイルを保存します。
-
Mapped Diagnostic Context (MDC)情報をJSONテンプレートファイルに追加し、必要に応じて出力ログにMDC情報が含まれるようにします。このMDC情報にはTalend Cloud Management Consoleタスクの実行IDが含まれています。
- <RemoteEngineInstallationDirectory>/etcで、ファイルを作成してjsonLogMinTemplateCustom.jsonという名前を付けます。
-
この新しいファイルに次の行を追加し、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"} }
- お使いのJMSシステムを設定し、jsonLogMinTemplate.jsonではなく、新しいこのjsonLogMinTemplateCustom.jsonテンプレートが使われるようにします。
2 これは一例です。JMSホストとそのポートを定義する必要があります。