Pergunta

Dados Simples realmente, suporta Log4j SyslogAppender MDC e NDC no sentido de que a saída está estruturado ou seja, usa os dados estruturados características do protocolo?

Além disso, existem limites sobre o que pode ser colocado no MDC e com êxito anexado ao log?

Foi útil?

Solução

MDC nem NDC são parte do protocolo syslog. Assim, não faz log4j (nem pode) apoiar MDC / NDC dentro dos dados estruturados do protocolo syslog. No entanto, nada impede que você adicionar dados do MDC ou NDC na parte "mensagem" da mensagem syslog, definindo o parâmetro ConversionPattern para incluir MDC informatation.

Aqui está um exemplo de uma entrada MDC com a 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, você iria substituir "% X {ki} com apenas "% x"(note o uso de minúsculas).

Quanto à segunda parte da sua pergunta, não há limites para os valores que você pode colocar dentro de MDC ou NDC.

Outras dicas

Olhando para o código-fonte, eu não vejo nenhuma razão pela qual não deveria.

Você já tentou escrever com sucesso para syslog, e em seguida, escrever com algo em sua NDC / MDC? Note que você terá que ativar este no PatternLayout (utilizando% x% ou X).

O MDC não parecem ter quaisquer limitações sobre o que você pode inserir (mais uma vez, com base em inspecionar o código fonte). Eu suspeito que a escrita MDC simplesmente executar uma toString() sobre o conteúdo do MDC, e assim você pode ser limitada simplesmente como útil / legível seus objetos são quando processado desta forma.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top