in src/log4net/Appender/RemoteSyslogAppender.cs [322:382]
protected override void Append(LoggingEvent loggingEvent)
{
if (Client is null)
{
ErrorHandler.Error(
$"Unable to send logging event to remote syslog {RemoteAddress} on port {RemotePort}, no client created",
e: null,
ErrorCode.WriteFailure);
return;
}
loggingEvent.EnsureNotNull();
try
{
// Priority
int priority = GeneratePriority(Facility, GetSeverity(loggingEvent.Level));
// Identity
string? identity;
if (Identity is not null)
{
identity = Identity.Format(loggingEvent);
}
else
{
identity = loggingEvent.Domain;
}
// Message. The message goes after the tag/identity
string message = RenderLoggingEvent(loggingEvent);
int i = 0;
var builder = new StringBuilder();
while (i < message.Length)
{
// Clear StringBuilder
builder.Length = 0;
// Write priority
builder.Append('<').Append(priority).Append('>');
// Write identity
builder.Append(identity).Append(": ");
AppendMessage(message, ref i, builder);
// Grab as a byte array
byte[] buffer = Encoding.GetBytes(builder.ToString());
Client.SendAsync(buffer, buffer.Length, RemoteEndPoint).Wait();
}
}
catch (Exception e) when (!e.IsFatal())
{
ErrorHandler.Error(
$"Unable to send logging event to remote syslog {RemoteAddress} on port {RemotePort}.",
e, ErrorCode.WriteFailure);
}
}