示例#1
0
        public void GivenNothing_LoggerFactoryCanBeConfiguredUsingInMemoryDebugProvider_FindRecentRespectsTimestamp()
        {
            var logger = LoggerFactory.Create((builder) => { }).AddInMemoryDebug().CreateLogger(typeof(LoggerTests));

            logger.LogError(new IndexOutOfRangeException("Lew"), "Mew");
            Assert.Empty(InMemoryDebugProvider.FindRecentLogMessages("Mew", "Lew", DateTime.UtcNow + TimeSpan.FromMilliseconds(1)));
        }
示例#2
0
        public void GivenNothing_LoggerFactoryCanBeConfiguredUsingInMemoryDebugProvider_AndLoggerLogs()
        {
            // Ensure other tests logs doesnt interfere
            Thread.Sleep(100);
            var testStartTime = DateTime.UtcNow;
            //

            var logger = LoggerFactory.Create((builder) => { }).AddInMemoryDebug().CreateLogger(typeof(LoggerTests));

            logger.LogError(new IndexOutOfRangeException("Lew"), "Mew");
            Assert.Single(InMemoryDebugProvider.FindRecentLogMessages("Mew", "Lew", testStartTime));
        }
示例#3
0
        public void GivenServicesProvider_DICanBeConfiguredUsingInMemoryDebugProvider_AndLoggerLogs()
        {
            // Ensure other tests logs doesnt interfere
            Thread.Sleep(100);
            var testStartTime = DateTime.UtcNow;
            //

            var internalServiceCollection = new ServiceCollection();
            var serviceProvider           = internalServiceCollection
                                            .AddLogging(_ =>
            {
                _.AddInMemoryDebug();
            }).BuildServiceProvider();

            var logger = serviceProvider.GetService <ILogger <LoggerTests> >();

            logger.LogError(new IndexOutOfRangeException("Lew"), "Mew");
            Assert.Single(InMemoryDebugProvider.FindRecentLogMessages("Mew", "Lew", testStartTime));
        }
示例#4
0
        [Fact] // TODO make manual because takes long and infra dependant?
        public void GivenServicesProvider_OptionsCanBeChangedForInMemoryDebugProvider_EnsureNewOptionsAreEffective()
        {
            var testStartTime = DateTime.UtcNow;

            File.WriteAllText("dummy.json", @"{""Logging"": { ""InMemoryDebug"": { ""LogMessageLifetime"": 10000 } } }");
            var mutatingConfig = new ConfigurationBuilder()
                                 .AddJsonFile("dummy.json", optional: false, reloadOnChange: true)
                                 .Build();
            var config = new ConfigurationBuilder()
                         .AddConfiguration(mutatingConfig)
                         .Build();

            var internalServiceCollection = new ServiceCollection();
            var serviceProvider           = internalServiceCollection
                                            .AddLogging(_ =>
            {
                _.AddConfiguration(config.GetSection("Logging"));
                _.AddInMemoryDebug();
            }).BuildServiceProvider();

            var logger = serviceProvider.GetService <ILogger <LoggerTests> >();

            // Assert first config doesnt expire message
            logger.LogError(new IndexOutOfRangeException("Lew"), "Mew");
            Thread.Sleep(1000);
            Assert.True(InMemoryDebugProvider.FindRecentLogMessages("Mew", "Lew", testStartTime).Count() > 0);

            // Mutate config
            File.WriteAllText("dummy.json", @"{""Logging"": { ""InMemoryDebug"": { ""LogMessageLifetime"": 500 } } }");
            Thread.Sleep(5000); // Takes time to pickup, bit infrastructure dependant

            // Assert mutated config does expire message
            logger.LogError(new IndexOutOfRangeException("Lew"), "Mew");
            Thread.Sleep(1000);
            Assert.Empty(InMemoryDebugProvider.FindRecentLogMessages("Mew", "Lew", testStartTime));
        }