Exemple #1
0
        /// <inheritdoc />
        public void Send(CefMessage message)
        {
            var syslogMessage    = _serializer.Serialize(message);
            var stream           = new MemoryStream(_serializer.Serialize(syslogMessage));
            var syslogMessageStr = new StreamReader(stream).ReadToEnd();

            Logger.LogInfoFormat("Send syslog message: {0}", syslogMessageStr);
            _policy.Execute(() => SendInternal(message));
        }
Exemple #2
0
        private void SendInternal(CefMessage message)
        {
            Logger.LogDebug("Call SendInternal...");
            using (var sender = _cefSenderFactory.CreateSender(_cefConfig))
            {
                sender.Send(message, _serializer);
            }

            Logger.LogDebug("Call SendInternal done.");
        }
        /// <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));
        }
Exemple #4
0
 public void Send(CefMessage message, CefMessageSerializer serializer)
 {
     Send(serializer.Serialize(message), serializer);
 }