Exemplo n.º 1
0
        public void ReloadableLoggersRecordEnrichment()
        {
            var emittedEvents = new List <LogEvent>();

            var logger = new LoggerConfiguration()
                         .WriteTo.Sink(new ListSink(emittedEvents))
                         .CreateBootstrapLogger();

            var outer = logger
                        .ForContext("A", new object());
            var inner = outer.ForContext("B", "test");

            inner.Information("First");

            logger.Reload(lc => lc.WriteTo.Sink(new ListSink(emittedEvents)));

            inner.Information("Second");

            logger.Freeze();

            inner.Information("Third");

            outer.ForContext("B", "test").Information("Fourth");

            logger.ForContext("A", new object())
            .ForContext("B", "test")
            .Information("Fifth");

            Assert.Equal(5, emittedEvents.Count);
            Assert.All(emittedEvents, e => Assert.Equal(2, e.Properties.Count));
        }
Exemplo n.º 2
0
        public void CachingReloadableLoggerRemainsUsableAfterFreezing()
        {
            var logger     = new LoggerConfiguration().CreateBootstrapLogger();
            var contextual = logger.ForContext <ReloadableLoggerTests>();

            contextual.Information("First");
            logger.Reload(c => c);
            logger.Freeze();
            contextual.Information("Second");
            contextual.Information("Third");
            contextual.Information("Fourth"); // No crash :-)
        }