Beispiel #1
0
        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)
        {
            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();
            }
        }
        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
            }

        }
        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;
        }
Beispiel #8
0
        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();
            }
        }
Beispiel #9
0
        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 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);
        }
Beispiel #13
0
 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();
     }
 }
 protected abstract void Send(SyslogMessage syslogMessage);
Beispiel #15
0
 protected abstract Task Send(SyslogMessage syslogMessage);
 protected abstract Task Send(SyslogMessage syslogMessage);