/// <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)); }
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)); }
public void Send(CefMessage message, CefMessageSerializer serializer) { Send(serializer.Serialize(message), serializer); }