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