[
https://issues.apache.org/jira/browse/LOG4NET-370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13614135#comment-13614135
]
Jarrod Alexander commented on LOG4NET-370:
------------------------------------------
Dominik,
If the user was logging data generated from within the program (stacktrace for
example), the linefeed characters will be equal to Environment.Newline, so
there won't be a problem. If the user logs text from some external source, it
could contain other linefeed characters, so I agree it is an issue. Obviously
for me and for log4net, performance should be paramount. There are various
options for achieving the desired result, but what do you think about a fix as
simple as:
string[] lines = message.Split(new char[] { '\r', '\n' },
StringSplitOptions.RemoveEmptyEntries);
Do you have a better method in mind?
> RemoteSyslogAppender doesn't properly handle newline in log message
> -------------------------------------------------------------------
>
> Key: LOG4NET-370
> URL: https://issues.apache.org/jira/browse/LOG4NET-370
> Project: Log4net
> Issue Type: Bug
> Components: Appenders
> Environment: All
> Reporter: Jarrod Alexander
> Assignee: Dominik Psenner
> Attachments: RemoteSyslogAppender.cs.patch,
> RemoteSyslogAppender.cs.revised.patch
>
>
> RemoteSyslogAppender sends log messages containing newline characters to
> syslog, however the syslog RFC 3164 states that the message portion of the
> syslog packet can only contain visible ASCII characters and spaces. This
> causes multiline log messages to render on a single line in at least some
> instances.
> The solution appears to be sending each line of the log message as a separate
> syslog packet. I have modified RemoteSyslogAppender to support this behavior
> and will provide a patch file.
> Here is the relevant portion of the RFC:
> 4.1.3 MSG Part of a syslog Packet
> The MSG part will fill the remainder of the syslog packet. This will
> usually contain some additional information of the process that
> generated the message, and then the text of the message. There is no
> ending delimiter to this part. The MSG part of the syslog packet
> MUST contain visible (printing) characters. The code set
> traditionally and most often used has also been seven-bit ASCII in an
> eight-bit field like that used in the PRI and HEADER parts. In this
> code set, the only allowable characters are the ABNF VCHAR values
> (%d33-126) and spaces (SP value %d32). However, no indication of the
> code set used within the MSG is required, nor is it expected. Other
> code sets MAY be used as long as the characters used in the MSG are
> exclusively visible characters and spaces similar to those described
> above. The selection of a code set used in the MSG part SHOULD be
> made with thoughts of the intended receiver. A message containing
> characters in a code set that cannot be viewed or understood by a
> recipient will yield no information of value to an operator or
> administrator looking at it.
> http://www.ietf.org/rfc/rfc3164.txt
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira