public void Fact3() { DummySink sink = new DummySink(); LoggerSourceContextLevelOverrides switches = new LoggerSourceContextLevelOverrides(LogEventLevel.Warning, KeyValuePair.Create("A", LogEventLevel.Debug), KeyValuePair.Create("2", LogEventLevel.Debug), KeyValuePair.Create("3", LogEventLevel.Debug), KeyValuePair.Create("4", LogEventLevel.Debug), KeyValuePair.Create("5", LogEventLevel.Debug), KeyValuePair.Create("6", LogEventLevel.Debug), KeyValuePair.Create("7", LogEventLevel.Debug), KeyValuePair.Create("8", LogEventLevel.Debug), KeyValuePair.Create("9", LogEventLevel.Debug), KeyValuePair.Create("10", LogEventLevel.Debug) ); Logger logger = new LoggerConfiguration() .Filter().MinimumLevel() .WriteTo.Logger(c => c .Filter().Overrides(switches) .WriteTo.Sink(sink)) .CreateLogger(); Logger defaultLogger = new LoggerConfiguration() .Filter().MinimumLevel() .WriteTo.Logger(c => c .Filter().Overrides(switches) .WriteTo.Sink(sink)) .CreateLogger(); Serilog.ILogger abLogger = logger.ForContext(Constants.SourceContextPropertyName, "A.B"); Serilog.ILogger bLogger = logger.ForContext(Constants.SourceContextPropertyName, "B"); for (int i = 0; i < 100_000; i++) { bLogger.Information("b"); } Assert.Empty(sink.Events); sink.Events.Clear(); for (int i = 0; i < 100_000; i++) { abLogger.Debug("ab"); } Assert.Equal(100000, sink.Events.Count); sink.Events.Clear(); }
public void Fact3() { var testSink = new TestSink(); var defaultSink = new TestSink(); var switches = new LoggerSourceContextLevelOverrides(LogEventLevel.Warning, KeyValuePair.Create("A.B", LogEventLevel.Debug) ); var testLogger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.Logger(c => c .Filter().Overrides(switches) .WriteTo.Sink(testSink)) .CreateLogger(); var defaultLogger = new LoggerConfiguration() .MinimumLevel.Warning() .MinimumLevel.Override("A.B", LogEventLevel.Debug) .WriteTo.Sink(defaultSink) .CreateLogger(); var abLogger = testLogger.ForContext(Constants.SourceContextPropertyName, "A.B"); var bLogger = testLogger.ForContext(Constants.SourceContextPropertyName, "B"); Measure("Overrides, excluded by default level", () => { for (int i = 0; i < 100_000; i++) { bLogger.Information("b"); } }); Assert.Empty(testSink.Events); testSink.Events.Clear(); Measure("Overrides, included by override category level", () => { for (int i = 0; i < 100_000; i++) { abLogger.Debug("ab"); } }); Assert.Equal(100000, testSink.Events.Count); testSink.Events.Clear(); var abDefalutLogger = defaultLogger.ForContext(Constants.SourceContextPropertyName, "A.B"); var bDefaultLogger = defaultLogger.ForContext(Constants.SourceContextPropertyName, "B"); Measure("MinimumLevel, excluded by default level", () => { for (int i = 0; i < 100_000; i++) { bDefaultLogger.Information("b"); } }); Assert.Empty(defaultSink.Events); defaultSink.Events.Clear(); Measure("MinimumLevel, included by override category level", () => { for (int i = 0; i < 100_000; i++) { abDefalutLogger.Debug("ab"); } }); Assert.Equal(100000, defaultSink.Events.Count); defaultSink.Events.Clear(); }