protected override async Task Send(SyslogMessage syslogMessage) { if (!_udpClient.IsActive) { var logglyEndpointIp = Dns.GetHostEntry(LogglyConfig.Instance.Transport.EndpointHostname).AddressList[0]; _udpClient.Connect(logglyEndpointIp, LogglyConfig.Instance.Transport.EndpointPort); } try { if (_udpClient.IsActive) { var bytes = syslogMessage.GetBytes(); await _udpClient.SendAsync(bytes, bytes.Length).ConfigureAwait(false); } else { LogglyException.Throw("Syslog client Socket is not connected."); } } finally { Close(); } }
internal SyslogMessage ConstructSyslog(LogglyMessage message) { var appNameSafe = LogglyConfig.Instance.ApplicationName ?? string.Empty; var syslogMessage = new SyslogMessage(); syslogMessage.Facility = Facility.User; syslogMessage.Text = message.Content; syslogMessage.Level = message.Syslog.Level; syslogMessage.MessageId = message.Syslog.MessageId; syslogMessage.AppName = appNameSafe.Replace(" ", ""); syslogMessage.Timestamp = message.Timestamp; var tags = RenderedTags; var tagSpacer = string.IsNullOrEmpty(RenderedTags) ? string.Empty : " "; syslogMessage.Text = string.Format( "[{0}@41058{1}{2}] {3}" , LogglyConfig.Instance.CustomerToken , tagSpacer , tags , message.Content); return(syslogMessage); }
protected override async Task Send(SyslogMessage syslogMessage) { var client = new TcpClient(); client.ConnectAsync(Hostname, LogglyConfig.Instance.Transport.EndpointPort).Wait(); try { byte[] messageBytes = syslogMessage.GetBytes(); var networkStream = await GetNetworkStream(client).ConfigureAwait(false); await networkStream.WriteAsync(messageBytes, 0, messageBytes.Length).ConfigureAwait(false); await networkStream.FlushAsync().ConfigureAwait(false); } catch (AuthenticationException e) { LogglyException.Throw(e, e.Message); } finally { #if NET_STANDARD client.Dispose(); #else client.Close(); #endif } }
internal SyslogMessage ConstructSyslog(LogglyMessage message, IEnumerable<string> tags = null) { var appNameSafe = LogglyConfig.Instance.ApplicationName ?? string.Empty; var syslogMessage = new SyslogMessage(); syslogMessage.Facility = Facility.User; syslogMessage.Text = message.Content; syslogMessage.Level = message.Syslog.Level; syslogMessage.MessageId = message.Syslog.MessageId; syslogMessage.AppName = appNameSafe.Replace(" ", ""); syslogMessage.Timestamp = message.Timestamp; var effectiveTags = RenderedTags ?? ""; if (tags != null) { var customTags = tags.ToList(); if (customTags.Count > 0) { if (!string.IsNullOrEmpty(effectiveTags)) effectiveTags += ","; effectiveTags += string.Join(",", customTags); } } var tagSpacer = string.IsNullOrEmpty(RenderedTags) ? string.Empty : " "; syslogMessage.Text = string.Format( "[{0}@41058{1}{2}] {3}" , LogglyConfig.Instance.CustomerToken , tagSpacer , effectiveTags , message.Content); return syslogMessage; }
internal SyslogMessage ConstructSyslog(LogglyMessage message) { var appNameSafe = LogglyConfig.Instance.ApplicationName ?? string.Empty; var syslogMessage = new SyslogMessage(); syslogMessage.Facility = Facility.User; syslogMessage.Text = message.Content; syslogMessage.Level = message.Syslog.Level; syslogMessage.MessageId = message.Syslog.MessageId; syslogMessage.AppName = appNameSafe.Replace(" ", ""); syslogMessage.Timestamp = message.Timestamp; var tags = RenderedTags; var tagSpacer = string.IsNullOrEmpty(RenderedTags) ? string.Empty : " "; syslogMessage.Text = string.Format( "[{0}@41058{1}{2}] {3}" , LogglyConfig.Instance.CustomerToken , tagSpacer , tags , message.Content); return syslogMessage; }
protected override async Task Send(SyslogMessage syslogMessage) { await _semaphore.WaitAsync(); try { if (_networkStream == null) { _tcpClient = new TcpClient(); await _tcpClient.ConnectAsync(Hostname, LogglyConfig.Instance.Transport.EndpointPort).ConfigureAwait(false); _networkStream = await GetNetworkStream(_tcpClient).ConfigureAwait(false); } byte[] messageBytes = syslogMessage.GetBytes(); await _networkStream.WriteAsync(messageBytes, 0, messageBytes.Length).ConfigureAwait(false); await _networkStream.FlushAsync().ConfigureAwait(false); } catch (AuthenticationException e) { LogglyException.Throw(e, e.Message); } catch (IOException ioException) { #if NET_STANDARD _tcpClient?.Dispose(); #else _tcpClient?.Close(); #endif _networkStream = null; LogglyException.Throw(ioException, ioException.Message); } catch (ObjectDisposedException disposedException) { _networkStream = null; LogglyException.Throw(disposedException, disposedException.Message); } finally { _semaphore.Release(); } }
protected override void Send(SyslogMessage syslogMessage) { var client = new TcpClient(Hostname, LogglyConfig.Instance.Transport.EndpointPort); try { byte[] messageBytes = syslogMessage.GetBytes(); var networkStream = GetNetworkStream(client); networkStream.Write(messageBytes, 0, messageBytes.Length); networkStream.Flush(); } catch (AuthenticationException e) { LogglyException.Throw(e, e.Message); } finally { client.Close(); } }
protected override async Task Send(SyslogMessage syslogMessage) { try { var hostEntry = Dns.GetHostEntryAsync(LogglyConfig.Instance.Transport.EndpointHostname).Result; var logglyEndpointIp = hostEntry.AddressList[0]; var bytes = syslogMessage.GetBytes(); await _udpClient.SendAsync( bytes, bytes.Length, new IPEndPoint(logglyEndpointIp, LogglyConfig.Instance.Transport.EndpointPort)).ConfigureAwait(false); } catch (Exception ex) { LogglyException.Throw(ex, "Error when sending data using Udp client."); } finally { Close(); } }
public void MessageString() { var syslog = new SyslogMessage(); var environmentProvider = new Mock<IEnvironmentProvider>(); environmentProvider.Setup(p => p.MachineName).Returns("server1.com"); environmentProvider.Setup(p => p.ProcessId).Returns(900); syslog.EnvironmentProvider = environmentProvider.Object; syslog.Timestamp = DateTimeOffset.Parse("2003-10-11T22:14:15.003Z"); syslog.Text = "[8bf8cc10-4140-4c3e-a2b4-e6f5324f1aea@41058]"; syslog.Facility = Facility.Auth; syslog.Level = Level.Critical; syslog.AppName = "sudo"; syslog.MessageId = 31; var messageString = syslog.GetMessageAsString(); Console.WriteLine(messageString); Assert.AreEqual("<34>1 2003-10-11T22:14:15.003000+00:00 server1.com sudo 900 31 [8bf8cc10-4140-4c3e-a2b4-e6f5324f1aea@41058]", messageString); //loggly example Assert.AreEqual("<34>1 2003-10-11T22:14:15.003Z server1.com sudo - - [8bf8cc10-4140-4c3e-a2b4-e6f5324f1aea@41058]", messageString); }
protected abstract void Send(SyslogMessage syslogMessage);
protected abstract Task Send(SyslogMessage syslogMessage);