public void NoEmptyEventLists() { var configuration = new LoggingConfiguration(); var target = new MyLogReceiverWebServiceTarget(); target.EndpointAddress = "http://notimportant:9999/"; target.Initialize(configuration); var asyncTarget = new AsyncTargetWrapper(target) { Name = "NoEmptyEventLists_wrapper" }; try { asyncTarget.Initialize(configuration); asyncTarget.WriteAsyncLogEvents(new[] { LogEventInfo.Create(LogLevel.Info, "logger1", "message1").WithContinuation(ex => { }) }); Thread.Sleep(1000); Assert.Equal(1, target.SendCount); } finally { asyncTarget.Close(); target.Close(); } }
public void LogReceiverWebServiceTargetMultipleEventTest() { var logger = LogManager.GetLogger("loggerName"); var target = new MyLogReceiverWebServiceTarget(); target.EndpointAddress = "http://notimportant:9999/"; target.Parameters.Add(new MethodCallParameter("message", "${message}")); target.Parameters.Add(new MethodCallParameter("lvl", "${level}")); var exceptions = new List <Exception>(); var events = new[] { LogEventInfo.Create(LogLevel.Info, "logger1", "message1").WithContinuation(exceptions.Add), LogEventInfo.Create(LogLevel.Debug, "logger2", "message2").WithContinuation(exceptions.Add), LogEventInfo.Create(LogLevel.Fatal, "logger1", "message2").WithContinuation(exceptions.Add), }; var configuration = new LoggingConfiguration(); target.Initialize(configuration); target.WriteAsyncLogEvents(events); // with multiple events, we should get string caching var payload = target.LastPayload; Assert.AreEqual(2, payload.LayoutNames.Count); Assert.AreEqual("message", payload.LayoutNames[0]); Assert.AreEqual("lvl", payload.LayoutNames[1]); // 7 strings instead of 9 since 'logger1' and 'message2' are being reused Assert.AreEqual(7, payload.Strings.Count); Assert.AreEqual(3, payload.Events.Length); Assert.AreEqual("message1", payload.Strings[payload.Events[0].ValueIndexes[0]]); Assert.AreEqual("message2", payload.Strings[payload.Events[1].ValueIndexes[0]]); Assert.AreEqual("message2", payload.Strings[payload.Events[2].ValueIndexes[0]]); Assert.AreEqual("Info", payload.Strings[payload.Events[0].ValueIndexes[1]]); Assert.AreEqual("Debug", payload.Strings[payload.Events[1].ValueIndexes[1]]); Assert.AreEqual("Fatal", payload.Strings[payload.Events[2].ValueIndexes[1]]); Assert.AreEqual("logger1", payload.Strings[payload.Events[0].LoggerOrdinal]); Assert.AreEqual("logger2", payload.Strings[payload.Events[1].LoggerOrdinal]); Assert.AreEqual("logger1", payload.Strings[payload.Events[2].LoggerOrdinal]); Assert.AreEqual(payload.Events[0].LoggerOrdinal, payload.Events[2].LoggerOrdinal); }
public void LogReceiverWebServiceTargetMultipleEventTest() { var target = new MyLogReceiverWebServiceTarget(); target.EndpointAddress = "http://notimportant:9999/"; target.Parameters.Add(new MethodCallParameter("message", "${message}")); target.Parameters.Add(new MethodCallParameter("lvl", "${level}")); var exceptions = new List<Exception>(); var events = new[] { LogEventInfo.Create(LogLevel.Info, "logger1", "message1").WithContinuation(exceptions.Add), LogEventInfo.Create(LogLevel.Debug, "logger2", "message2").WithContinuation(exceptions.Add), LogEventInfo.Create(LogLevel.Fatal, "logger1", "message2").WithContinuation(exceptions.Add), }; var configuration = new LoggingConfiguration(); target.Initialize(configuration); target.WriteAsyncLogEvents(events); // with multiple events, we should get string caching var payload = target.LastPayload; Assert.AreEqual(2, payload.LayoutNames.Count); Assert.AreEqual("message", payload.LayoutNames[0]); Assert.AreEqual("lvl", payload.LayoutNames[1]); // 7 strings instead of 9 since 'logger1' and 'message2' are being reused Assert.AreEqual(7, payload.Strings.Count); Assert.AreEqual(3, payload.Events.Length); Assert.AreEqual("message1", payload.Strings[payload.Events[0].ValueIndexes[0]]); Assert.AreEqual("message2", payload.Strings[payload.Events[1].ValueIndexes[0]]); Assert.AreEqual("message2", payload.Strings[payload.Events[2].ValueIndexes[0]]); Assert.AreEqual("Info", payload.Strings[payload.Events[0].ValueIndexes[1]]); Assert.AreEqual("Debug", payload.Strings[payload.Events[1].ValueIndexes[1]]); Assert.AreEqual("Fatal", payload.Strings[payload.Events[2].ValueIndexes[1]]); Assert.AreEqual("logger1", payload.Strings[payload.Events[0].LoggerOrdinal]); Assert.AreEqual("logger2", payload.Strings[payload.Events[1].LoggerOrdinal]); Assert.AreEqual("logger1", payload.Strings[payload.Events[2].LoggerOrdinal]); Assert.AreEqual(payload.Events[0].LoggerOrdinal, payload.Events[2].LoggerOrdinal); }
public void NoEmptyEventLists() { var configuration = new LoggingConfiguration(); var target = new MyLogReceiverWebServiceTarget(); target.EndpointAddress = "http://notimportant:9999/"; target.Initialize(configuration); var asyncTarget = new AsyncTargetWrapper(target) { Name = "NoEmptyEventLists_wrapper" }; try { asyncTarget.Initialize(configuration); asyncTarget.WriteAsyncLogEvents(new[] { LogEventInfo.Create(LogLevel.Info, "logger1", "message1").WithContinuation(ex => { }) }); Thread.Sleep(1000); Assert.Equal(1, target.SendCount); } finally { asyncTarget.Close(); target.Close(); } }
public void LogReceiverWebServiceTargetMultipleEventWithPerEventPropertiesTest() { var target = new MyLogReceiverWebServiceTarget(); target.IncludeEventProperties = true; target.EndpointAddress = "http://notimportant:9999/"; target.Parameters.Add(new MethodCallParameter("message", "${message}")); target.Parameters.Add(new MethodCallParameter("lvl", "${level}")); var exceptions = new List<Exception>(); var events = new[] { LogEventInfo.Create(LogLevel.Info, "logger1", "message1").WithContinuation(exceptions.Add), LogEventInfo.Create(LogLevel.Debug, "logger2", "message2").WithContinuation(exceptions.Add), LogEventInfo.Create(LogLevel.Fatal, "logger1", "message2").WithContinuation(exceptions.Add), }; events[0].LogEvent.Properties["prop1"] = "value1"; events[1].LogEvent.Properties["prop1"] = "value2"; events[2].LogEvent.Properties["prop1"] = "value3"; events[0].LogEvent.Properties["prop2"] = "value2a"; var configuration = new LoggingConfiguration(); target.Initialize(configuration); target.WriteAsyncLogEvents(events); // with multiple events, we should get string caching var payload = target.LastPayload; // 4 layout names - 2 from Parameters, 2 from unique properties in events Assert.Equal(4, payload.LayoutNames.Count); Assert.Equal("message", payload.LayoutNames[0]); Assert.Equal("lvl", payload.LayoutNames[1]); Assert.Equal("prop1", payload.LayoutNames[2]); Assert.Equal("prop2", payload.LayoutNames[3]); Assert.Equal(12, payload.Strings.Count); Assert.Equal(3, payload.Events.Length); Assert.Equal("message1", payload.Strings[payload.Events[0].ValueIndexes[0]]); Assert.Equal("message2", payload.Strings[payload.Events[1].ValueIndexes[0]]); Assert.Equal("message2", payload.Strings[payload.Events[2].ValueIndexes[0]]); Assert.Equal("Info", payload.Strings[payload.Events[0].ValueIndexes[1]]); Assert.Equal("Debug", payload.Strings[payload.Events[1].ValueIndexes[1]]); Assert.Equal("Fatal", payload.Strings[payload.Events[2].ValueIndexes[1]]); Assert.Equal("value1", payload.Strings[payload.Events[0].ValueIndexes[2]]); Assert.Equal("value2", payload.Strings[payload.Events[1].ValueIndexes[2]]); Assert.Equal("value3", payload.Strings[payload.Events[2].ValueIndexes[2]]); Assert.Equal("value2a", payload.Strings[payload.Events[0].ValueIndexes[3]]); Assert.Equal("", payload.Strings[payload.Events[1].ValueIndexes[3]]); Assert.Equal("", payload.Strings[payload.Events[2].ValueIndexes[3]]); Assert.Equal("logger1", payload.Strings[payload.Events[0].LoggerOrdinal]); Assert.Equal("logger2", payload.Strings[payload.Events[1].LoggerOrdinal]); Assert.Equal("logger1", payload.Strings[payload.Events[2].LoggerOrdinal]); Assert.Equal(payload.Events[0].LoggerOrdinal, payload.Events[2].LoggerOrdinal); }
public void LogReceiverWebServiceTargetMultipleEventWithPerEventPropertiesTest() { var target = new MyLogReceiverWebServiceTarget(); target.IncludeEventProperties = true; target.EndpointAddress = "http://notimportant:9999/"; target.Parameters.Add(new MethodCallParameter("message", "${message}")); target.Parameters.Add(new MethodCallParameter("lvl", "${level}")); var exceptions = new List <Exception>(); var events = new[] { LogEventInfo.Create(LogLevel.Info, "logger1", "message1").WithContinuation(exceptions.Add), LogEventInfo.Create(LogLevel.Debug, "logger2", "message2").WithContinuation(exceptions.Add), LogEventInfo.Create(LogLevel.Fatal, "logger1", "message2").WithContinuation(exceptions.Add), }; events[0].LogEvent.Properties["prop1"] = "value1"; events[1].LogEvent.Properties["prop1"] = "value2"; events[2].LogEvent.Properties["prop1"] = "value3"; events[0].LogEvent.Properties["prop2"] = "value2a"; var configuration = new LoggingConfiguration(); target.Initialize(configuration); target.WriteAsyncLogEvents(events); // with multiple events, we should get string caching var payload = target.LastPayload; // 4 layout names - 2 from Parameters, 2 from unique properties in events Assert.Equal(4, payload.LayoutNames.Count); Assert.Equal("message", payload.LayoutNames[0]); Assert.Equal("lvl", payload.LayoutNames[1]); Assert.Equal("prop1", payload.LayoutNames[2]); Assert.Equal("prop2", payload.LayoutNames[3]); Assert.Equal(12, payload.Strings.Count); Assert.Equal(3, payload.Events.Length); Assert.Equal("message1", payload.Strings[payload.Events[0].ValueIndexes[0]]); Assert.Equal("message2", payload.Strings[payload.Events[1].ValueIndexes[0]]); Assert.Equal("message2", payload.Strings[payload.Events[2].ValueIndexes[0]]); Assert.Equal("Info", payload.Strings[payload.Events[0].ValueIndexes[1]]); Assert.Equal("Debug", payload.Strings[payload.Events[1].ValueIndexes[1]]); Assert.Equal("Fatal", payload.Strings[payload.Events[2].ValueIndexes[1]]); Assert.Equal("value1", payload.Strings[payload.Events[0].ValueIndexes[2]]); Assert.Equal("value2", payload.Strings[payload.Events[1].ValueIndexes[2]]); Assert.Equal("value3", payload.Strings[payload.Events[2].ValueIndexes[2]]); Assert.Equal("value2a", payload.Strings[payload.Events[0].ValueIndexes[3]]); Assert.Equal("", payload.Strings[payload.Events[1].ValueIndexes[3]]); Assert.Equal("", payload.Strings[payload.Events[2].ValueIndexes[3]]); Assert.Equal("logger1", payload.Strings[payload.Events[0].LoggerOrdinal]); Assert.Equal("logger2", payload.Strings[payload.Events[1].LoggerOrdinal]); Assert.Equal("logger1", payload.Strings[payload.Events[2].LoggerOrdinal]); Assert.Equal(payload.Events[0].LoggerOrdinal, payload.Events[2].LoggerOrdinal); }