4

簡単に言うと、Log4j SyslogAppender は、出力が構造化データであるという意味で MDC と NDC をサポートしていますか。つまり、プロトコルの構造化データ機能を使用していますか?

さらに、MDC に入れ、ログに正常に追加できるものに制限はありますか?

4

2 に答える 2

7

MDC も NDC も Syslog プロトコルの一部です。したがって、log4j は、Syslog プロトコルの構造化データ内で MDC/NDC をサポートしていません (またサポートすることもできません)。ただし、MDC 情報を含めるように ConversionPattern パラメーターを設定することにより、syslog メッセージの「メッセージ」部分に MDC または NDC データを追加することを妨げるものは何もありません。

キー "ki" を持つ MDC エントリの例を次に示します。

log4j.rootLogger=INFO, SYSLOG
log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.SyslogHost=a.host.name

# Facility must be one of the case-insensitive strings:
# KERN, USER, MAIL, DAEMON, AUTH, SYSLOG, LPR, NEWS, UUCP, CRON,
# AUTHPRIV, FTP, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6,
# LOCAL7 
log4j.appender.SYSLOG.facility=KERN

log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.ConversionPattern=%r %p %c %X{ki} - %m\n

NDC の場合、"%X{ki} を単に "%x" に置き換えます (小文字の使用に注意してください)。

質問の 2 番目の部分については、MDC または NDC 内に配置できる値に制限はありません。

于 2009-06-03T10:02:08.243 に答える