[ 
https://issues.apache.org/jira/browse/LOG4J2-949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14491593#comment-14491593
 ] 

Ralph Goers commented on LOG4J2-949:
------------------------------------

The SyslogLayout is meant to implement RFC 3164, the traditional BSD syslog 
spec. It makes sure the header of the record matches what the syslog 
specification expects. What it doesn't do is allow the message portion of the 
record to be formatted beyond what Message.getFormattedMessage() will do. In 
other words it is just the %m field in the PatternLayout.  It isn't clear to me 
how the MDC fields should be added and how they would be formatted.

> No MDC parameters in Syslog
> ---------------------------
>
>                 Key: LOG4J2-949
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-949
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.1
>         Environment: Ubuntu 12
>            Reporter: Maxim Novikov
>            Priority: Critical
>              Labels: mdc, syslog, syslogappender, threadcontext
>
> I cannot see thread context specific parameters (MDC) with the Syslog 
> appender.
> Here is my configuration:
> {code:title=log4j2.xml|borderStyle=solid}
> <?xml version="1.0" encoding="UTF-8"?>
> <Configuration status="WARN">
>   <Appenders>
>     <Console name="Console" target="SYSTEM_OUT">
>       <PatternLayout pattern="%X{my-mdc-key} %d{HH:mm:ss.SSS} %-5level 
> [%logger{1.}] %msg%n" />
>     </Console>
>     <Syslog name="Syslog"
>             format="RFC5424"
>             host="localhost"
>             port="514"
>             protocol="UDP" 
>             id="my-id"
>             mdcId="mdc"
>             mdcRequired="my-mdc-key"
>             enterpriseNumber="1000"
>             newLine="true"
>             appName="my-app">
>       <LoggerFields>
>         <KeyValuePair key="thread" value="%t" />
>         <KeyValuePair key="category" value="%c" />
>       </LoggerFields>
>     </Syslog>
>   </Appenders>
>   <Loggers>
>     <Root level="info">
>       <AppenderRef ref="Console" />
>       <AppenderRef ref="Syslog" />
>     </Root>
> </Configuration>
> {code}
> I can see my-mdc-key's value in the terminal just fine (as well as other MDC 
> custom parameters if I need to), but there is none is syslog's log file.
> The same concerns the LoggerFields collection. I have added it just to try 
> overcoming the issue with MDC, but also can't see any of those through syslog.
> I have tried to play with "mdcId", "mdcRequired", "mdcRequired", but with no 
> success. The only thing for sure is that my MDC custom fields do exist in the 
> context, as I can see them in the console, as well as Syslog appender starts 
> with not exception when I specify them through "mdcRequired" field.
> PS Just to clarify, the messages do get delivered to the syslog, but no MDC 
> and no custom logger fields there.
> Marked as "Critical" as we will have to migrate to logback or another 
> framework if it is not going to work, as this functionality is required for 
> us.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to