MDC und NDC sind Teil des Syslog-Protokolls. Log4j unterstützt daher MDC/NDC innerhalb der strukturierten Daten des Syslog-Protokolls nicht (kann es auch nicht). Nichts hindert Sie jedoch daran, MDC- oder NDC-Daten im "Nachrichten" -Teil der Syslog-Nachricht hinzuzufügen, indem Sie den ConversionPattern-Parameter so einstellen, dass er MDC-Informationen enthält. Hier
ist ein Beispiel für eine MDC-Eingabe mit der Taste "ki":
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
Für NDC, würden Sie „% X {ki} mit nur "ersetzen% x"(beachten Sie die Verwendung von niedrigeren Fall).
Was den zweiten Teil Ihrer Frage, gibt es keine Grenzen für die Werte, die Sie innerhalb von MDC oder NDC platzieren können.
jemand würde denken, dieser Typ hatte log4j oder etwas geschrieben –
Gareth Davis: tatsächlich tat er. – cherouvim