Domanda

Semplici dati davvero, fa Log4j SyslogAppender supporto MDC e NDC, nel senso che l'uscita è strutturato ovvero utilizza le funzionalità di dati strutturati del protocollo?

Inoltre, ci sono dei limiti a ciò che può essere messo in MDC e con successo aggiunto al registro?

È stato utile?

Soluzione

MDC né NDC sono parte del protocollo Syslog. Così, log4j no (né può) supportare MDC / NDC nei dati strutturati del protocollo Syslog. Tuttavia, nulla impedisce di aggiungere dati MDC o NDC nella parte "messaggio" del messaggio syslog impostando il parametro ConversionPattern per includere MDC informatation.

Ecco un esempio di una voce MDC con il tasto "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

Per NDC, si dovrebbe sostituire "% X {} ki con il solo "% x"(si noti l'uso di lettere minuscole).

Per quanto riguarda la seconda parte della tua domanda, non ci sono limiti ai valori è possibile inserire all'interno di MDC o NDC.

Altri suggerimenti

Guardando il codice sorgente, non vedo alcuna ragione per cui non dovrebbe.

Hai provato a scrivere con successo per syslog, e poi scrivere con qualcosa nella vostra NDC / MDC? Si noti che dovrete abilitare questa nel PatternLayout (usando% xo% x).

Il MDC non sembra avere limitazioni su ciò che è possibile inserire (di nuovo, basato sul controllo del codice sorgente). Ho il sospetto che la scritta MDC semplicemente eseguire un toString() sui contenuti del MDC, e così si può essere limitata semplicemente come utile / leggibili i vostri oggetti sono quando rese in questo modo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top