Esempio n. 1
0
        private static string Serialize <T>(string fullName, T value)
        {
            if (value == null || !cefKeys.ContainsKey(fullName))
            {
                return(null);
            }

            string valueAsString;

            if (value is Enum)
            {
                valueAsString = Convert.ToInt32(value)
                                .ToString();
            }
            else if (value is DateTimeOffset)
            {
                valueAsString = string.Format(CultureInfo.InvariantCulture, "{0:MMM dd yyyy HH:mm:ss}", value);
            }
            else
            {
                valueAsString = CefEncoder.EncodeExtension(value.ToString());
            }

            return($"{cefKeys[fullName]}={valueAsString} ");
        }
Esempio n. 2
0
        /// <summary>
        /// Сериализует сообщение из <see cref="CefMessage"/> в <see cref="SyslogMessage"/>
        /// </summary>
        /// <param name="message">Сообщение для сериализации</param>
        /// <returns>Сообщение в формате библиотеки Syslog</returns>
        public SyslogMessage Serialize(CefMessage message)
        {
            var msg = string.Join("|",
                                  message.Version,
                                  CefEncoder.EncodeHeader(message.DeviceVendor),
                                  CefEncoder.EncodeHeader(message.DeviceProduct),
                                  CefEncoder.EncodeHeader(message.DeviceVersion),
                                  message.DeviceEventClassId,
                                  CefEncoder.EncodeHeader(message.Name),
                                  (int)message.Severity,
                                  Serialize(message.Extensions));

            return(new SyslogMessage(
                       message.Extensions.StartTime,
                       Facility.UserLevelMessages,
                       message.Severity.ToSyslogSeverity(),
                       message.HostName,
                       "CEF",
                       msg));
        }