Ejemplo n.º 1
0
        public void DisposeOnLoggerFactory_CallsDisposeOn_AllRegisteredLoggerProviders()
        {
            // Arrange
            var loggerProvider1 = new TestLoggerProvider(new TestSink(), isEnabled: true);
            var loggerProvider2 = new TestLoggerProvider(new TestSink(), isEnabled: true);

            // Imagine this to be the default logger factory that is provided by the host and is
            // present in DI.
            var loggerFactoryFromHost = new LoggerFactory();

            // Imagine this to be the user code which adds the wrapped logger providers.
            var filterLoggerFactory = loggerFactoryFromHost
                                      .WithFilter(new FilterLoggerSettings()
            {
                { "Microsoft", LogLevel.Warning },
                { "System", LogLevel.Warning },
                { "SampleApp", LogLevel.Debug },
            });

            filterLoggerFactory.AddProvider(loggerProvider1);
            filterLoggerFactory.AddProvider(loggerProvider2);
            var logger1 = loggerFactoryFromHost.CreateLogger("Microsoft.foo");

            // Act
            loggerFactoryFromHost.Dispose();

            // Assert
            Assert.True(loggerProvider1.DisposeCalled);
            Assert.True(loggerProvider2.DisposeCalled);
        }