Skip to content

Commit

Permalink
Merge pull request #14 from qbantek/master
Browse files Browse the repository at this point in the history
Reusing the LogEventInfo while splitting the message in multiple lines
  • Loading branch information
Jesper Hess Nielsen committed Feb 20, 2014
2 parents a53248b + c53101d commit d326a17
Showing 1 changed file with 5 additions and 9 deletions.
14 changes: 5 additions & 9 deletions src/NLog.Targets.Syslog/NLog.Targets.Syslog.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,16 +91,12 @@ protected override void Write(LogEventInfo logEvent)
// Set the current Locale to "en-US" for proper date formatting
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

string[] formattedLines = logEvent.FormattedMessage.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string fline in formattedLines)
string[] formattedMessageLines = logEvent.FormattedMessage.Split(new char[] {'\r', '\n'}, StringSplitOptions.RemoveEmptyEntries);
foreach (var formattedMessageLine in formattedMessageLines)
{
var layoutLine = new LogEventInfo(level: logEvent.Level, loggerName: logEvent.LoggerName, message: fline);
if (logEvent.HasStackTrace)
{
layoutLine.SetStackTrace(stackTrace: logEvent.StackTrace, userStackFrame: logEvent.UserStackFrameNumber);
}
byte[] msg = BuildSyslogMessage(Facility, GetSyslogSeverity(logEvent.Level), DateTime.Now, Sender, Layout.Render(layoutLine));
SendMessage(SyslogServer, Port, msg, Protocol, Ssl);
logEvent.Message = formattedMessageLine;
byte[] message = BuildSyslogMessage(Facility, GetSyslogSeverity(logEvent.Level), DateTime.Now, Sender, Layout.Render(logEvent));
SendMessage(SyslogServer, Port, message, Protocol, Ssl);
}

// Restore the original culture
Expand Down

0 comments on commit d326a17

Please sign in to comment.