Frage

Ganz einfach, tut Log4j SyslogAppender Unterstützung MDC und NDC in dem Sinne, dass der Ausgang strukturierte Daten d verwenden die strukturierten Daten Merkmale des Protokolls?

Darüber hinaus gibt es keine Grenzen gesetzt, was in das Protokoll im MDC und erfolgreich angehängt gesetzt werden?

War es hilfreich?

Lösung

MDC noch NDC ist Teil des Syslog-Protokolls. Somit muss log4j nicht (noch kann es) MDC / NDC innerhalb der strukturierten Daten des Syslog-Protokoll unterstützen. Aber nichts hindert Sie MDC oder NDC Daten in der „Botschaft“ Teil der syslog-Nachricht aus der Addition von den ConversionPattern Parametereinstellung MDC informatation aufzunehmen.

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 Kleinbuchstaben).

Was den zweiten Teil Ihrer Frage, es gibt keine Grenzen für die Werte, die Sie innerhalb von MDC oder NDC platzieren können.

Andere Tipps

auf den Quellcode der Suche, ich sehe keinen Grund, warum sollte es nicht.

Haben Sie versucht, erfolgreich zu syslog schreiben, und dann mit etwas in Ihrem NDC / MDC zu schreiben? Beachten Sie, dass Sie müssen werden dies ermöglichen in der Pattern (% x oder% x verwendet wird).

Die MDC scheint keine Grenzen zu haben, auf das, was Sie einfügen können (auch hier auf Basis des Quellcodes auf Inspektion). Ich vermute, dass das MDC Schreiben wird einfach eine toString() auf den Inhalt des MDC durchführen, und so können Sie einfach begrenzt werden, indem man, wie nützlich / lesbar Ihre Objekte sind, wenn sie auf diese Weise wiedergegeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top