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; }
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; }
public void SyslogContentWithTags() { LogglyConfig.Instance.CustomerToken = "MyLogglyToken"; var transport = new SyslogTcpTransport(); var logglyMessage = new LogglyMessage(); logglyMessage.Content = "myContent"; var syslog = transport.ConstructSyslog(logglyMessage); Assert.AreEqual("[MyLogglyToken@41058 tag=\"myTag\"] myContent", syslog.Text); }
public void SyslogContentWhenNoTags() { LogglyConfig.Instance.Tags.SimpleTags.Clear(); var transport = new SyslogTcpTransport(); var logglyMessage = new LogglyMessage(); logglyMessage.Content = "myContent"; var syslog = transport.ConstructSyslog(logglyMessage); Assert.AreEqual("[MyLogglyToken@41058] myContent", syslog.Text); }
public async Task SendsSingleMessageToInputApi() { var message = new LogglyMessage { Content = "Test1", CustomTags = { new SimpleTag { Value = "TestTag" } } }; var response = await _transport.Send(new[] { message }); Assert.AreEqual("https://test/inputs/MyLogglyToken", _requestUri.ToString()); Assert.AreEqual("myTag,TestTag", _tags); Assert.AreEqual("Test1", _requestContent); Assert.AreEqual(ResponseCode.Success, response.Code); }
public async Task Messages_are_published_to_url_with_Environment([Frozen] LogglyOptions options, IFixture fixture, LogglyMessage message) { var registration = new HttpMessageOptions { HttpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK), HttpMethod = HttpMethod.Post }; var handler = new FakeHttpMessageHandler(registration); fixture.Register((LogglyOptions o) => new HttpClient(handler) { BaseAddress = new Uri($"{o.LogglyScheme}://{o.LogglyHost}") }); var sut = fixture.Create <LogglyHttpClient>(); await sut.PublishAsync(message); Assert.That(registration.HttpResponseMessage.RequestMessage.RequestUri.AbsolutePath, Contains.Substring(options.Environment)); }
public async Task ErrorResponseIsHandled() { var message = new LogglyMessage { Content = "Test1", CustomTags = { new SimpleTag { Value = "triggerError" } } }; var response = await _transport.Send(new[] { message }); Assert.AreEqual("https://test/inputs/MyLogglyToken", _requestUri.ToString()); Assert.AreEqual(ResponseCode.Error, response.Code); }
public void Message_is_not_published_after_adding_to_queue_when_disposed([Frozen] ILogglyClient client, LogglyProcessor sut, LogglyMessage message) { sut.Dispose(); sut.EnqueueMessage(message); Mock.Get(client).Verify(p => p.PublishAsync(message), Times.Never); }
public async Task Message_is_published_after_adding_to_queue([Frozen] ILogglyClient client, LogglyProcessor sut, LogglyMessage message) { sut.EnqueueMessage(message); await Task.Delay(TimeSpan.FromMilliseconds(100)); Mock.Get(client).Verify(p => p.PublishManyAsync(It.Is <IEnumerable <LogglyMessage> >(m => m.Contains(message)))); }