in src/log4net/Appender/RemoteSyslogAppender.cs [345:408]
protected override void Append(LoggingEvent loggingEvent)
{
try
{
// Priority
int priority = GeneratePriority(m_facility, GetSeverity(loggingEvent.Level));
// Identity
string identity;
if (m_identity != null)
{
identity = m_identity.Format(loggingEvent);
}
else
{
identity = loggingEvent.Domain;
}
// Message. The message goes after the tag/identity
string message = RenderLoggingEvent(loggingEvent);
byte[] buffer;
int i = 0;
StringBuilder builder = new StringBuilder();
while (i < message.Length)
{
// Clear StringBuilder
builder.Length = 0;
// Write priority
builder.Append('<');
builder.Append(priority);
builder.Append('>');
// Write identity
builder.Append(identity);
builder.Append(": ");
AppendMessage(message, ref i, builder);
// Grab as a byte array
buffer = this.Encoding.GetBytes(builder.ToString());
#if NET_4_5 || NETSTANDARD
Client.SendAsync(buffer, buffer.Length, RemoteEndPoint).Wait();
#else
this.Client.Send(buffer, buffer.Length, this.RemoteEndPoint);
#endif
}
}
catch (Exception e)
{
ErrorHandler.Error(
"Unable to send logging event to remote syslog " +
this.RemoteAddress.ToString() +
" on port " +
this.RemotePort + ".",
e,
ErrorCode.WriteFailure);
}
}