syslog、syslog-ng、rsyslogシステムにログを直接送信したい場合があります。
手順
-
<RemoteEngineInstallationDirectory>/etc/org.ops4j.pax.logging.cfgファイルを開き、次の行を追加します。
例
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
- ファイルを保存します。
-
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"} }
- お使いのSyslogシステムを設定し、jsonLogMinTemplate.jsonではなく、新しいこのjsonLogMinTemplateCustom.jsonテンプレートが使われるようにします。