protected virtual void AppendMessage()

in src/log4net/Appender/RemoteSyslogAppender.cs [391:416]


  protected virtual void AppendMessage(string message, ref int characterIndex, StringBuilder builder)
  {
    message.EnsureNotNull();
    builder.EnsureNotNull();
    for (; characterIndex < message.Length; characterIndex++)
    {
      char c = message[characterIndex];

      // Accept only visible ASCII characters and space. See RFC 3164 section 4.1.3
      if (c is >= ' ' and <= (char)126)
      {
        builder.Append(c);
      }
      // If character is newline, break and send the current line
      else if (c is '\r' or '\n')
      {
        // Check the next character to handle \r\n or \n\r
        if ((message.Length > characterIndex + 1) && ((message[characterIndex + 1] == '\r') || (message[characterIndex + 1] == '\n')))
        {
          characterIndex++;
        }
        characterIndex++;
        break;
      }
    }
  }