/// <summary>Builds rfc-3164 compatible message</summary>
        /// <param name="logEvent">The NLog.LogEventInfo</param>
        /// <param name="facility">Syslog Facility to transmit message from</param>
        /// <param name="severity">Syslog severity level</param>
        /// <param name="body">Message text</param>
        /// <returns>Byte array containing formatted syslog message</returns>
        private byte[] BuildSyslogMessage3164(LogEventInfo logEvent, SyslogFacility facility, SyslogSeverity severity, string body)
        {
            // Calculate PRI field
            var priority = CalculatePriorityValue(facility, severity).ToString(CultureInfo.InvariantCulture);
            var time     = logEvent.TimeStamp.ToLocalTime().ToString(TimestampFormat, _usCulture);
            // Get sender machine name
            var machine = MachineName.Render(logEvent);
            // Get sender
            var sender = Sender.Render(logEvent);

            return(Encoding.ASCII.GetBytes($"<{priority}>{time} {machine} {sender}: {body}{Environment.NewLine}"));
        }
        /// <summary>Builds rfc-5424 compatible message</summary>
        /// <param name="logEvent">The NLog.LogEventInfo</param>
        /// <param name="facility">Syslog Facility to transmit message from</param>
        /// <param name="severity">Syslog severity level</param>
        /// <param name="body">Message text</param>
        /// <returns>Byte array containing formatted syslog message</returns>
        private byte[] BuildSyslogMessage5424(LogEventInfo logEvent, SyslogFacility facility, SyslogSeverity severity, string body)
        {
            // Calculate PRI field
            var priority = CalculatePriorityValue(facility, severity).ToString(CultureInfo.InvariantCulture);
            var version  = ProtocolVersion.ToString(CultureInfo.InvariantCulture);
            var time     = logEvent.TimeStamp.ToString("o");
            // Get sender machine name
            var machine = Left(MachineName.Render(logEvent), 255);
            var sender  = Left(Sender.Render(logEvent), 48);
            var procId  = Left(ProcId.Render(logEvent), 128);
            var msgId   = Left(MsgId.Render(logEvent), 32);

            var headerData     = Encoding.ASCII.GetBytes($"<{priority}>{version} {time} {machine} {sender} {procId} {msgId} ");
            var structuredData = Encoding.UTF8.GetBytes(StructuredData.Render(logEvent) + " ");
            var messageData    = Encoding.UTF8.GetBytes(body);

            var allData = new List <byte>(headerData.Length + structuredData.Length + _bom.Length + messageData.Length);

            allData.AddRange(headerData);
            allData.AddRange(structuredData);
            allData.AddRange(_bom);
            allData.AddRange(messageData);
            return(allData.ToArray());
        }