protected override void Append()

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);
    }
  }