public void LogReceiverWebServiceTargetSingleEventTest()
        {
            var target = new MyLogReceiverWebServiceTarget();

            target.EndpointAddress = "http://notimportant:9999/";
            target.Parameters.Add(new MethodCallParameter("message", "${message}"));
            target.Parameters.Add(new MethodCallParameter("lvl", "${level}"));

            var logger = new LogFactory().Setup().LoadConfiguration(cfg =>
            {
                cfg.Configuration.AddRuleForAllLevels(target);
            }).GetLogger("loggerName");

            logger.Info("message text");

            var payload = target.LastPayload;

            Assert.Equal(2, payload.LayoutNames.Count);
            Assert.Equal("message", payload.LayoutNames[0]);
            Assert.Equal("lvl", payload.LayoutNames[1]);
            Assert.Equal(3, payload.Strings.Count);
            Assert.Single(payload.Events);
            Assert.Equal("message text", payload.Strings[payload.Events[0].ValueIndexes[0]]);
            Assert.Equal("Info", payload.Strings[payload.Events[0].ValueIndexes[1]]);
            Assert.Equal("loggerName", payload.Strings[payload.Events[0].LoggerOrdinal]);
        }
Example #2
0
        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 NoEmptyEventLists()
        {
            var target = new MyLogReceiverWebServiceTarget();

            target.EndpointAddress = "http://notimportant:9999/";

            var logger = new LogFactory().Setup().LoadConfiguration(cfg =>
            {
                var asyncTarget = new AsyncTargetWrapper(target)
                {
                    Name = "NoEmptyEventLists_wrapper"
                };
                cfg.Configuration.AddRuleForAllLevels(asyncTarget);
            }).GetLogger("logger1");

            try
            {
                logger.Info("message1");
                Thread.Sleep(1000);
                Assert.Equal(1, target.SendCount);
            }
            finally
            {
                logger.Factory.Shutdown();
            }
        }
        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}"));

            new LogFactory().Setup().LoadConfiguration(cfg =>
            {
                cfg.Configuration.AddRuleForAllLevels(target);
            });

            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),
            };

            target.WriteAsyncLogEvents(events);

            // with multiple events, we should get string caching
            var payload = target.LastPayload;

            Assert.Equal(2, payload.LayoutNames.Count);
            Assert.Equal("message", payload.LayoutNames[0]);
            Assert.Equal("lvl", payload.LayoutNames[1]);

            // 7 strings instead of 9 since 'logger1' and 'message2' are being reused
            Assert.Equal(7, 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("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 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 LogReceiverWebServiceTargetSingleEventTest()
        {
            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}"));

            SimpleConfigurator.ConfigureForTargetLogging(target);
            logger.Info("message text");

            var payload = target.LastPayload;
            Assert.Equal(2, payload.LayoutNames.Count);
            Assert.Equal("message", payload.LayoutNames[0]);
            Assert.Equal("lvl", payload.LayoutNames[1]);
            Assert.Equal(3, payload.Strings.Count);
            Assert.Equal(1, payload.Events.Length);
            Assert.Equal("message text", payload.Strings[payload.Events[0].ValueIndexes[0]]);
            Assert.Equal("Info", payload.Strings[payload.Events[0].ValueIndexes[1]]);
            Assert.Equal("loggerName", payload.Strings[payload.Events[0].LoggerOrdinal]);
        }
        public void LogReceiverWebServiceTargetSingleEventTest()
        {
            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}"));

            SimpleConfigurator.ConfigureForTargetLogging(target);
            logger.Info("message text");

            var payload = target.LastPayload;

            Assert.Equal(2, payload.LayoutNames.Count);
            Assert.Equal("message", payload.LayoutNames[0]);
            Assert.Equal("lvl", payload.LayoutNames[1]);
            Assert.Equal(3, payload.Strings.Count);
            Assert.Equal(1, payload.Events.Length);
            Assert.Equal("message text", payload.Strings[payload.Events[0].ValueIndexes[0]]);
            Assert.Equal("Info", payload.Strings[payload.Events[0].ValueIndexes[1]]);
            Assert.Equal("loggerName", payload.Strings[payload.Events[0].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);
        }
Example #10
0
        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);
        }