MDC et NDC font partie du protocole Syslog. Ainsi, log4j ne supporte pas (et ne peut pas) MDC/NDC dans les données structurées du protocole Syslog. Toutefois, rien ne vous empêche d'ajouter des données MDC ou NDC dans la partie "message" du message syslog en définissant le paramètre ConversionPattern pour inclure l'information MDC.
Voici un exemple pour une entrée MDC avec la touche "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
Pour NDC, vous devez remplacer « % X {ki} avec juste "% x"(notez l'utilisation de bas cas).
Quant à la deuxième partie de votre question, il n'y a pas de limites aux valeurs que vous pouvez placer dans les MDC ou NDC.
quelqu'un pourrait penser que ce gars avait écrit log4j ou quelque chose –
Gareth Davis: en fait, il l'a fait. – cherouvim