Exemplo n.º 1
0
        public void create_logger_with_existing_loggers_returns_the_expected_logger()
        {
            // Arrange
            var provider = new Log4NetProvider();

            provider.CreateLogger("TestLogger1");
            provider.CreateLogger("TestLogger2");

            // Act
            var logger = provider.CreateLogger("TestLogger3");

            // Assert
            (logger as Log4NetLogger).LoggerName.Should().Be("TestLogger3");
        }
Exemplo n.º 2
0
        public void provider_clears_loggers_when_disposed()
        {
            // Arrange
            var provider = new Log4NetProvider();

            provider.CreateLogger("TestLogger");
            provider.CreateLogger("TestLogger1");

            // Act
            provider.Dispose();

            // Assert
            provider.Loggers.Count.Should().Be(0);
        }
Exemplo n.º 3
0
        public BambooLogger(string categoryName = "BambooLogger")
        {
            //创建默认执行器
            var provider = new Log4NetProvider(DefaultLog4NetConfigFileName);

            _logger = provider.CreateLogger(categoryName);
        }
        public void Ctor_When_FilenameArgument_Should_CreateInstance_That_AllowCreateLogger()
        {
            var sut = new Log4NetProvider(Context.GetLog4netFilePath(Models.Log4NetFileOption.All));

            var logger = sut.CreateLogger();

            logger.Should().BeOfType(typeof(Log4NetLogger));
        }
        public void Ctor_Should_CreateInstance_That_AllowCreateLogger()
        {
            var sut = new Log4NetProvider();

            var logger = sut.CreateLogger();

            logger.Should().BeOfType(typeof(Log4NetLogger));
        }
        public void CreateLoggerWithTypeName()
        {
            var provider = new Log4NetProvider();
            var logger   = provider.CreateLogger <Log4NetProviderExtensionsShould>() as Log4NetLogger;

            Assert.IsNotNull(logger);
            Assert.AreEqual(typeof(Log4NetProviderExtensionsShould).FullName, logger.Name);
        }
        public void CreateDefaultLoggerWithoutTypeName()
        {
            var provider = new Log4NetProvider();

            var logger = provider.CreateLogger() as Log4NetLogger;

            Assert.IsNotNull(logger);
            Assert.AreEqual(string.Empty, logger.Name);
        }
Exemplo n.º 8
0
        public void TestMethod1()
        {
            var provider = new Log4NetProvider("log4net.config");
            var logger   = provider.CreateLogger("Test");

            logger.LogCritical("A message");

            Assert.Inconclusive();
        }
        public void LogCriticalMessages()
        {
            var provider = new Log4NetProvider(DefaultLog4NetConfigFileName);
            var logger   = provider.CreateLogger(TestLoggerName);

            logger.LogCritical(MessageText);

            Assert.AreEqual(1, this.listener.Messages.Count);
            Assert.IsTrue(this.listener.Messages.Any(x => x.Contains(MessageText)));
        }
Exemplo n.º 10
0
        public void create_logger_with_null_or_empty_name_throws_exception(string name)
        {
            // Arrange
            var provider = new Log4NetProvider();

            // Act
            Action act = () => provider.CreateLogger(null);

            // Assert
            act.ShouldThrow <ArgumentNullException>().WithMessage("Value cannot be null.\r\nParameter name: name");
        }
Exemplo n.º 11
0
        public void create_logger_returns_the_expected_type()
        {
            // Arrange
            var provider = new Log4NetProvider();

            // Act
            var logger = provider.CreateLogger("TestLogger");

            // Assert
            logger.Should().BeOfType <Log4NetLogger>();
        }
Exemplo n.º 12
0
        public void create_logger_adding_two_loggers_with_the_same_name_at_the_same_time_only_has_one_logger()
        {
            // Arrange
            var provider = new Log4NetProvider();

            // Act
            var task1 = Task.Factory.StartNew(() =>
            {
                provider.CreateLogger("TestLogger");
            });

            var task2 = Task.Factory.StartNew(() =>
            {
                provider.CreateLogger("TestLogger");
            });

            Task.WaitAll(task1, task2);

            // Assert
            provider.Loggers.Count.Should().Be(1);
        }
        public void LogCriticalMessages()
        {
            var provider = new Log4NetProvider("log4net.config");
            var logger   = provider.CreateLogger("Test");

            const string message = "A message";

            logger.LogCritical(message);

            Assert.AreEqual(1, this.listener.Messages.Count);
            Assert.IsTrue(this.listener.Messages.Any(x => x.Contains(message)));
        }
Exemplo n.º 14
0
        public void WhenScopeFactoryIsNullOnProviderOptions_ThenDefaultLog4NetScopeFactoryIsUsed()
        {
            var options = new Log4NetProviderOptions
            {
                ScopeFactory = null
            };
            var provider = new Log4NetProvider(options);

            var logger = provider.CreateLogger("test") as Log4NetLogger;

            Assert.IsNotNull(logger?.Options?.ScopeFactory, "Scope factory on logger's options should not be null.");
        }
Exemplo n.º 15
0
        public void ProviderShouldCreateLoggerUsingConfigurationFileRelativePath()
        {
            var provider = new Log4NetProvider(Log4NetConfigFileName);

            var logger = provider.CreateLogger(TestLoggerName);

            const string message = MessageText;

            logger.LogCritical(message);

            Assert.AreEqual(1, this.listener.Messages.Count);
            Assert.IsTrue(this.listener.Messages.Any(x => x.Contains(message)));
        }
        public void Include_ScopePropertyOnMessages_When_ScopeIsString()
        {
            var provider = new Log4NetProvider(DefaultLog4NetConfigFileName);
            var logger   = provider.CreateLogger(TestLoggerName);

            using (var scope = logger.BeginScope(ScopedValueText))
            {
                logger.LogCritical(MessageText);
            }

            Assert.AreEqual(1, this.listener.Messages.Count);
            Assert.IsTrue(this.listener.Messages.Any(x => x.Contains(MessageText)));
            Assert.IsTrue(this.listener.Messages.Any(x => x.Contains(ScopedValueText)));
        }
Exemplo n.º 17
0
        public void WhenScopeFactoryIsProvidedInProviderOptions_ThenLoggerUsesProvidedScopeFactory()
        {
            var expectedFactory = new Log4NetScopeFactory(new Log4NetScopeRegistry());
            var options         = new Log4NetProviderOptions
            {
                ScopeFactory = expectedFactory
            };
            var provider = new Log4NetProvider(options);

            var logger = provider.CreateLogger("test") as Log4NetLogger;

            Assert.IsNotNull(logger?.Options?.ScopeFactory, "Scope factory on logger's options should not be null.");
            Assert.AreSame(expectedFactory, logger.Options.ScopeFactory,
                           "Scope factory on logger does not match factory from provider options.");
        }
        public void ProviderGeneratesLogger()
        {
            // Arrange
            var logMock       = new Mock <ILog>();
            var containerMock = new Mock <ILog4NetContainer>();

            containerMock.Setup(m => m.IsInitialized).Returns(true);
            containerMock.Setup(m => m.GetLog(It.IsAny <string>())).Returns(logMock.Object);

            // Act
            var provider = new Log4NetProvider(containerMock.Object);
            var logger   = provider.CreateLogger("test");

            // Assert
            Assert.NotNull(logger);
        }
        public void ProviderShouldBeCreatedWithConfigurationSectionOverrides()
        {
            if (File.Exists("overrided.log"))
            {
                File.Delete("overrided.log");
            }

            var configuration = GetNetCoreConfiguration();
            var provider      = new Log4NetProvider("log4net.config", configuration.GetSection("Logging"));
            var logger        = provider.CreateLogger("test");

            logger.LogCritical("Test file creation");

            Assert.IsNotNull(provider);
            Assert.IsTrue(File.Exists("overrided.log"));
        }
        public void ProviderShouldBeCreatedWithoutCoreConfigOverridesIfConfigSectionDoesNotContainData()
        {
            if (File.Exists("example.log"))
            {
                File.Delete("example.log");
            }

            var configuration = GetNetCoreConfiguration();
            var provider      = new Log4NetProvider("log4net.config", configuration.GetSection("LoggingEmpty"));
            var logger        = provider.CreateLogger("test");

            logger.LogCritical("Test file creation");

            Assert.IsNotNull(provider);
            Assert.IsTrue(File.Exists("example.log"));
        }
Exemplo n.º 21
0
        public void UsePatternLayoutOnExceptions()
        {
            var provider = new Log4NetProvider("log4net.config");
            var logger   = provider.CreateLogger("Test");

            try
            {
                ThrowException();
            }
            catch (Exception ex)
            {
                logger.LogCritical(10, ex, "Catched message");
            }

            Assert.Inconclusive();
        }
        public void WhenScopeFactoryIsNullOnProviderOptions_ThenDefaultLog4NetScopeFactoryIsUsed()
        {
            var options = new Log4NetProviderOptions
            {
                ScopeFactory = null
            };

            var sut = new Log4NetProvider(options);

            var logger = sut.CreateLogger("test") as Log4NetLogger;

            var internalOptions = GetInternalOptions(logger);

            internalOptions.Should().NotBeNull();
            internalOptions.ScopeFactory.Should().NotBeNull("Scope factory on logger's options should not be null.");
        }
        public void WhenLoggingEventFactoryIsNullOnProviderOptions_ThenDefaultLog4NetLoggingEventFactoryIsUsed()
        {
            var options = new Log4NetProviderOptions
            {
                LoggingEventFactory = null
            };

            var sut    = new Log4NetProvider(options);
            var logger = sut.CreateLogger("test") as Log4NetLogger;

            var internalOptions = GetInternalOptions(logger);

            internalOptions.Should().NotBeNull();
            internalOptions.LoggingEventFactory.Should().NotBeNull("a default LoggingEventFactory is needed to create LoggingEvents")
            .And.BeOfType <Log4NetLoggingEventFactory>("because this is the default factory type");
        }
        public void WhenLogLevelTranslatorIsProvidedInProviderOptions_ThenLoggerUsesProvidedLogLevelTranslator()
        {
            var expectedTranslator = new Log4NetLogLevelTranslator();
            var options            = new Log4NetProviderOptions
            {
                LogLevelTranslator = expectedTranslator
            };

            var sut    = new Log4NetProvider(options);
            var logger = sut.CreateLogger("test") as Log4NetLogger;

            var internalOptions = GetInternalOptions(logger);

            internalOptions.Should().NotBeNull();
            internalOptions.LogLevelTranslator.Should().NotBeNull("a LogLevelTranslator was provided in the options")
            .And.Be(expectedTranslator, "this LogLevelTranslator was provided in the options");
        }
        public void Include_ScopePropertyOnMessages_When_ScopeIsDictionaryOfObjects_And_AnyValueIsNull()
        {
            var provider = new Log4NetProvider(DefaultLog4NetConfigFileName);
            var logger   = provider.CreateLogger(TestLoggerName);

            using (var scope = logger.BeginScope(new Dictionary <string, object>()
            {
                { ScopedKeyText, null }
            }))
            {
                logger.LogCritical(MessageText);
            }

            Assert.AreEqual(1, this.listener.Messages.Count);
            Assert.IsTrue(this.listener.Messages.Any(x => x.Contains(MessageText)));
            Assert.IsTrue(this.listener.Messages.Any(x => x.Contains($"(null) (null) MESSAGE: {MessageText}")));
        }
        public void WhenLoggingEventFactoryIsProvidedInProviderOptions_ThenLoggerUsesProvidedLoggingEventFactory()
        {
            var expectedFactory = new Log4NetLoggingEventFactory();
            var options         = new Log4NetProviderOptions
            {
                LoggingEventFactory = expectedFactory
            };

            var sut    = new Log4NetProvider(options);
            var logger = sut.CreateLogger("test") as Log4NetLogger;

            var internalOptions = GetInternalOptions(logger);

            internalOptions.Should().NotBeNull();
            internalOptions.LoggingEventFactory.Should().NotBeNull("a LoggingEventFactory was provided in the options")
            .And.Be(expectedFactory, "this LoggingEventFactory was provided in the options");
        }
        public void UsePatternLayoutOnExceptions()
        {
            var provider = new Log4NetProvider("log4net.config");
            var logger   = provider.CreateLogger("Test");

            try
            {
                ThrowException();
            }
            catch (Exception ex)
            {
                logger.LogCritical(10, ex, "Catched message");
            }

            Assert.AreEqual(1, this.listener.Messages.Count);
            Assert.IsTrue(this.listener.Messages.Any(x => x.Contains("Catched message")));
        }
        public void WhenScopeFactoryIsProvidedInProviderOptions_ThenLoggerUsesProvidedScopeFactory()
        {
            var expectedFactory = new Log4NetScopeFactory(new Log4NetScopeRegistry());
            var options         = new Log4NetProviderOptions
            {
                ScopeFactory = expectedFactory
            };

            var sut    = new Log4NetProvider(options);
            var logger = sut.CreateLogger("test") as Log4NetLogger;

            var internalOptions = GetInternalOptions(logger);

            internalOptions.Should().NotBeNull();
            internalOptions.ScopeFactory.Should().NotBeNull("Scope factory on logger's options should not be null.")
            .And.Be(expectedFactory, "Scope factory on logger does not match factory from provider options.");
        }
        public void Provider_Should_InitializeLogging_When_UsingAppConfigFile()
        {
            const string message = MessageText;
            var          options = new Log4NetProviderOptions
            {
                UseWebOrAppConfig = true
            };

            using (var provider = new Log4NetProvider(options))
            {
                var logger = provider.CreateLogger(TestLoggerName);
                logger.LogCritical(message);
            }

            Assert.AreEqual(1, listener.Messages.ToList().Count);
            Assert.IsNotNull(listener.Messages.ToList().FirstOrDefault(x => x.Contains(message)), $"Listener should contain the logged message: {message}");
            Assert.IsNotNull(listener.Messages.ToList().FirstOrDefault(x => x.StartsWith($"{TestLoggerName}: APP.CONFIG")), $"Listener should start with AppConfig: {message}");
        }
        public void ProviderShouldBeCreatedWithOptions()
        {
            const string OverridOHLogFilePath = "overridOH.log";

            if (File.Exists(OverridOHLogFilePath))
            {
                File.Delete(OverridOHLogFilePath);
            }

            var options  = GetLog4NetProviderOptions();
            var provider = new Log4NetProvider(options);
            var logger   = provider.CreateLogger();

            logger.LogCritical(MessageText);

            Assert.IsNotNull(provider);
            Assert.IsTrue(File.Exists(OverridOHLogFilePath));
        }