Pregunta

simples datos realmente, hace Log4J SyslogAppender MDC apoyo y NDC en el sentido de que la salida está estructurado es decir, se utilizan las funciones de datos estructurados del protocolo?

Además, ¿hay límites en lo que se puede poner en el MDC y con éxito anexado al registro?

¿Fue útil?

Solución

MDC ni NDC son parte del protocolo Syslog. Por lo tanto, log4j no lo hace (ni puede) apoyar MDC / NDC dentro de los datos estructurados del protocolo Syslog. Sin embargo, nada impide que se agreguen los datos del MDC o NDC en la parte "mensaje" del mensaje syslog estableciendo el parámetro ConversionPattern incluir MDC informatation.

A continuación se muestra un ejemplo de una entrada MDC con la tecla "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

Para NDC, que sustituiría a "% X {ki} con sólo "% x"(nótese el uso de minúsculas).

En cuanto a la segunda parte de su pregunta, no hay límites a los valores que se pueden colocar dentro de MDC o NDC.

Otros consejos

Mirando el código fuente, no veo ninguna razón por la que no debería.

Ha intentado escribir con éxito a syslog, y luego escribir con algo en su NDC / MDC? Tenga en cuenta que tendrá que activar esta en el PatternLayout (utilizando% x o% X).

El MDC no parecen tener ningún tipo de limitaciones sobre lo que puede insertar (de nuevo, basado en la inspección del código fuente). Sospecho que la escritura MDC simplemente realizar una toString() sobre el contenido del MDC, y por lo que puede estar limitada sólo por lo útil / legibles sus objetos son cuando se representa de esta manera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top