public void WhenOwnedByPrimaryLoggerSecondaryIsDisposed() { var secondary = new DisposeTrackingSink(); ((IDisposable) new LoggerConfiguration() .WriteTo.Logger(lc => lc.WriteTo.Sink(secondary)) .CreateLogger()).Dispose(); Assert.True(secondary.IsDisposed); }
public void SinkIsDisposedWhenLoggerDisposed() { var tracker = new DisposeTrackingSink(); var logger = new LoggerConfiguration() .AuditTo.Sink(tracker) .CreateLogger(); logger.Dispose(); Assert.True(tracker.IsDisposed); }
public void WithMapSizeZeroSinksAreImmediatelyDisposed() { var a = Some.LogEvent("Hello, {Name}!", "Alice"); var sink = new DisposeTrackingSink(); var log = new LoggerConfiguration() .WriteTo.Map("Name", (name, wt) => wt.Sink(sink), sinkMapCountLimit: 0) .CreateLogger(); log.Write(a); Assert.True(sink.IsDisposed); }
public void WithNoMapSizeLimitSinksAreNotDisposed() { var a = Some.LogEvent("Hello, {Name}!", "Alice"); var sink = new DisposeTrackingSink(); var log = new LoggerConfiguration() .WriteTo.Map("Name", (name, wt) => wt.Sink(sink)) .CreateLogger(); log.Write(a); Assert.False(sink.IsDisposed); }
public void WhenOwnedByCallerSecondaryLoggerIsNotDisposed() { var secondary = new DisposeTrackingSink(); var secondaryLogger = new LoggerConfiguration() .WriteTo.Sink(secondary) .CreateLogger(); ((IDisposable) new LoggerConfiguration() .WriteTo.Logger(secondaryLogger) .CreateLogger()).Dispose(); Assert.False(secondary.IsDisposed); }
public void WhenSinkMapOverflowsUnmappedSinksAreDisposed() { var a = Some.LogEvent("Hello, {Name}!", "Alice"); var b = Some.LogEvent("Hello, {Name}!", "Bob"); var sinkA = new DisposeTrackingSink(); var sinkB = new DisposeTrackingSink(); var log = new LoggerConfiguration() .WriteTo.Map("Name", (name, wt) => wt.Sink(name == "Alice" ? sinkA : sinkB), sinkMapCountLimit: 1) .CreateLogger(); log.Write(a); log.Write(b); Assert.True(sinkA.IsDisposed); Assert.False(sinkB.IsDisposed); }