Question

Simple vraiment, pris en charge par Log4j SyslogAppender MDC et NDC dans le sens que la sortie est des données structurées à savoir utilise les caractéristiques de données structurées du protocole?

En outre, sont-il des limites à ce qui peut être mis dans le MDC et joint avec succès dans le journal?

Était-ce utile?

La solution

MDC ni NDC font partie du protocole Syslog. Ainsi, log4j ne (et ne peut pas) soutenir MDC / NDC dans les données structurées du protocole Syslog. Cependant, 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 MDC informatation.

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 des minuscules).

En ce qui concerne 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.

Autres conseils

En regardant le code source, je ne vois aucune raison pour laquelle il ne devrait pas.

Avez-vous essayé d'écrire avec succès à syslog, puis écrire quelque chose dans votre NDC / MDC? Notez que vous devrez activer ce dans le PatternLayout (avec x% ou% X).

Le MDC ne semble pas avoir de limites à ce que vous pouvez insérer (encore une fois, sur la base d'inspecter le code source). Je soupçonne que l'écriture MDC simplement effectuer une toString() sur le contenu du MDC, et vous pouvez être limité simplement par la façon dont vos objets utiles / lisibles sont au moment du rendu de cette façon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top