protected override void Append()

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