public void ToLogEventInfoTest()
        {
            LogManager.Configuration = CreateConfigurationFromString(@"
            <nlog>
                <targets>
                    <target name='debug1' type='Debug' layout='${message} ${event-context:foo} ${event-context:bar} ${event-context:baz}' />
                    <target name='debug2' type='Debug' layout='${message} ${event-context:foo} ${event-context:bar} ${event-context:baz}' />
                    <target name='debug3' type='Debug' layout='${message} ${event-context:foo} ${event-context:bar} ${event-context:baz}' />
                </targets>
                <rules>
                    <logger name='logger1' minlevel='Trace' writeTo='debug1' />
                    <logger name='logger2' minlevel='Trace' writeTo='debug2' />
                    <logger name='logger3' minlevel='Trace' writeTo='debug3' />
                </rules>
            </nlog>");

            var service = new LogReceiverForwardingService();
            var events  = new NLogEvents
            {
                BaseTimeUtc = new DateTime(2010, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).Ticks,
                ClientName  = "foo",
                LayoutNames = new StringCollection {
                    "foo", "bar", "baz"
                },
                Strings = new StringCollection {
                    "logger1", "logger2", "logger3", "zzz", "message1"
                },
                Events =
                    new[]
                {
                    new NLogEvent
                    {
                        Id             = 1,
                        LevelOrdinal   = 2,
                        LoggerOrdinal  = 0,
                        TimeDelta      = 30000000,
                        MessageOrdinal = 4,
                        Values         = "0|1|2"
                    },
                    new NLogEvent
                    {
                        Id             = 2,
                        LevelOrdinal   = 3,
                        LoggerOrdinal  = 2,
                        MessageOrdinal = 4,
                        TimeDelta      = 30050000,
                        Values         = "0|1|3",
                    }
                }
            };

            service.ProcessLogMessages(events);
            this.AssertDebugCounter("debug1", 1);
            this.AssertDebugCounter("debug2", 0);
            this.AssertDebugCounter("debug3", 1);
            this.AssertDebugLastMessage("debug1", "message1 logger1 logger2 logger3");
            this.AssertDebugLastMessage("debug3", "message1 logger1 logger2 zzz");
        }
Example #2
0
        public void ToLogEventInfoTest()
        {
            var logFactory = new LogFactory().Setup().LoadConfigurationFromXml(@"
            <nlog throwExceptions='true'>
                <targets>
                    <target name='debug1' type='Debug' layout='${message} ${event-context:foo} ${event-context:bar} ${event-context:baz}' />
                    <target name='debug2' type='Debug' layout='${message} ${event-context:foo} ${event-context:bar} ${event-context:baz}' />
                    <target name='debug3' type='Debug' layout='${message} ${event-context:foo} ${event-context:bar} ${event-context:baz}' />
                </targets>
                <rules>
                    <logger name='logger1' minlevel='Trace' writeTo='debug1' />
                    <logger name='logger2' minlevel='Trace' writeTo='debug2' />
                    <logger name='logger3' minlevel='Trace' writeTo='debug3' />
                </rules>
            </nlog>").LogFactory;
            var debug1     = logFactory.Configuration.FindTargetByName <NLog.Targets.DebugTarget>("debug1");
            var debug2     = logFactory.Configuration.FindTargetByName <NLog.Targets.DebugTarget>("debug2");
            var debug3     = logFactory.Configuration.FindTargetByName <NLog.Targets.DebugTarget>("debug3");

            var service = new LogReceiverForwardingService(logFactory);
            var events  = new NLogEvents
            {
                BaseTimeUtc = new DateTime(2010, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).Ticks,
                ClientName  = "foo",
                LayoutNames = new StringCollection {
                    "foo", "bar", "baz"
                },
                Strings = new StringCollection {
                    "logger1", "logger2", "logger3", "zzz", "message1"
                },
                Events =
                    new[]
                {
                    new NLogEvent
                    {
                        Id             = 1,
                        LevelOrdinal   = 2,
                        LoggerOrdinal  = 0,
                        TimeDelta      = 30000000,
                        MessageOrdinal = 4,
                        Values         = "0|1|2"
                    },
                    new NLogEvent
                    {
                        Id             = 2,
                        LevelOrdinal   = 3,
                        LoggerOrdinal  = 2,
                        MessageOrdinal = 4,
                        TimeDelta      = 30050000,
                        Values         = "0|1|3",
                    }
                }
            };

            service.ProcessLogMessages(events);

            Assert.Equal(1, debug1.Counter);
            Assert.Equal(0, debug2.Counter);
            Assert.Equal(1, debug3.Counter);
            Assert.Equal("message1 logger1 logger2 logger3", debug1.LastMessage);
            Assert.Equal("message1 logger1 logger2 zzz", debug3.LastMessage);

            logFactory.Shutdown();
        }