Пример #1
0
        public async Task ReconfigureAsyncOnLogfileWithExceptionInPreprocessorDispose_Should_DisposeOtherPreprocessorsAnyway()
        {
            var preprocessor         = new TestPreprocessor();
            var router               = new TestRouter <LogEvent <StandardLoglevel> >();
            var logfileConfiguration = (new LogfileConfigurationBuilder <StandardLoglevel>()
                                        .AddPreprocessor(preprocessor)
                                        .AddRouter(router)
                                        as LogfileConfigurationBuilder <StandardLoglevel>)
                                       .Build();
            var logfile = new Logfile <StandardLoglevel>();
            await logfile.ReconfigureAsync(logfileConfiguration, default);

            ((TestPreprocessor)logfile.Configuration.Preprocessors.OfType <TestPreprocessor>().First()).DisposeCallback =
                () => throw new InvalidOperationException();
            var preprocessorDisposed = false;

            ((TestPreprocessor)logfile.Configuration.Preprocessors.OfType <TestPreprocessor>().Last()).DisposeCallback =
                () => preprocessorDisposed = true;
            var newRouter = new TestRouter <LogEvent <StandardLoglevel> >();
            var newLogfileConfiguration = (new LogfileConfigurationBuilder <StandardLoglevel>()
                                           .AddRouter(newRouter)
                                           as LogfileConfigurationBuilder <StandardLoglevel>)
                                          .Build();
            await logfile.ReconfigureAsync(newLogfileConfiguration, default);

            preprocessorDisposed.Should().BeTrue();
            logfile.Configuration.Should().BeSameAs(newLogfileConfiguration);
        }
Пример #2
0
        public async Task ReconfigureAsyncOnLogfile_Should_DisposeOldPreprocessorsAndRoutersAndReplaceConfiguration()
        {
            var preprocessor         = new TestPreprocessor();
            var router               = new TestRouter <LogEvent <StandardLoglevel> >();
            var logfileConfiguration = (new LogfileConfigurationBuilder <StandardLoglevel>()
                                        .AddPreprocessor(preprocessor)
                                        .AddRouter(router)
                                        as LogfileConfigurationBuilder <StandardLoglevel>)
                                       .Build();
            var logfile = new Logfile <StandardLoglevel>();
            await logfile.ReconfigureAsync(logfileConfiguration, default);

            var preprocessorDisposed = false;

            ((TestPreprocessor)logfile.Configuration.Preprocessors.OfType <TestPreprocessor>().Single()).DisposeCallback =
                () => preprocessorDisposed = true;
            var routerDisposed = false;

            ((TestRouter <LogEvent <StandardLoglevel> >)logfile.Configuration.Routers.Single()).DisposeCallback =
                () => routerDisposed = true;
            var newRouter = new TestRouter <LogEvent <StandardLoglevel> >();
            var newLogfileConfiguration = (new LogfileConfigurationBuilder <StandardLoglevel>()
                                           .AddRouter(newRouter)
                                           as LogfileConfigurationBuilder <StandardLoglevel>)
                                          .Build();
            await logfile.ReconfigureAsync(newLogfileConfiguration, default);

            preprocessorDisposed.Should().BeTrue();
            routerDisposed.Should().BeTrue();
            logfile.Configuration.Should().BeSameAs(newLogfileConfiguration);
        }
Пример #3
0
        public void LogDeveloperEventWhileEnabled_Should_ForwardEvent()
        {
            var router = new TestRouter <LogEvent <StandardLoglevel> >();
            var logfileConfiguration = (new LogfileConfigurationBuilder <StandardLoglevel>()
                                        .EnableDeveloperMode()
                                        .AddRouter(router)
                                        as LogfileConfigurationBuilder <StandardLoglevel>)
                                       .Build();
            var logfile = new Logfile <StandardLoglevel>();

            logfile.ReconfigureAsync(logfileConfiguration, default).GetAwaiter().GetResult();

            var forwarded = new ManualResetEventSlim();
            LogEvent <StandardLoglevel> forwardedEvent = null;

            router.ForwardCallback = (_logEvents) =>
            {
                forwardedEvent = _logEvents.Single();
                forwarded.Set();
            };
            var event1 = new LogEvent <StandardLoglevel>(_ => { }, StandardLoglevel.Warning).Developer;

            logfile.Log(new LogEvent <StandardLoglevel>[] { event1 });

            event1.IsDeveloper.Should().BeTrue();
            forwarded.Wait(TimeSpan.FromMilliseconds(500)).Should().BeTrue();
            forwardedEvent.Should().BeSameAs(event1);
        }
        public void AddRouter_Should_AddRouter()
        {
            var router  = new TestRouter <LogEvent <StandardLoglevel> >();
            var builder = new LogfileConfigurationBuilder <StandardLoglevel>();

            LogfileConfigurationBuilderExtensions.AddRouter(builder, router);
            builder.Routers.Single().Should().BeSameAs(router);
        }
Пример #5
0
        void prepare(out Logfile <StandardLoglevel> logfile, out TestRouter <LogEvent <StandardLoglevel> > router)
        {
            router = new TestRouter <LogEvent <StandardLoglevel> >();
            var logfileConfiguration = (new LogfileConfigurationBuilder <StandardLoglevel>()
                                        .AddRouter(router)
                                        as LogfileConfigurationBuilder <StandardLoglevel>)
                                       .Build();

            logfile = new Logfile <StandardLoglevel>();
            logfile.ReconfigureAsync(logfileConfiguration, default).GetAwaiter().GetResult();
        }
        public void Constructor_Should_SetProperties()
        {
            var router1       = new TestRouter <LogEvent <StandardLoglevel> >();
            var routers       = new IRouter <LogEvent <StandardLoglevel> >[] { router1 };
            var preprocessor1 = new TestPreprocessor();
            var preprocessors = new IRoutablePreprocessor <LogEvent <StandardLoglevel> >[] { preprocessor1 };

            var logfileConfiguration = new LogfileConfiguration <StandardLoglevel>(
                routers,
                preprocessors,
                1,
                2,
                TimeSpan.FromMilliseconds(3),
                true);

            logfileConfiguration.Routers.Should().Contain(router1);
            logfileConfiguration.Preprocessors.Should().Contain(preprocessor1);
            logfileConfiguration.MaximumRoutablesQueueLength.Should().Be(1);
            logfileConfiguration.MaximumRoutablesForwardingCount.Should().Be(2);
            logfileConfiguration.WaitForMoreRoutablesForwardingDelay.Should().Be(TimeSpan.FromMilliseconds(3));
            logfileConfiguration.IsDeveloperModeEnabled.Should().BeTrue();
        }
        public void Build_Should_CreateHubConfiguration()
        {
            var router1       = new TestRouter <LogEvent <StandardLoglevel> >();
            var preprocessor1 = new TestPreprocessor();
            var builder       = new LogfileConfigurationBuilder <StandardLoglevel>();

            builder.AllowLoglevels.Add(StandardLoglevel.Warning);
            builder.BlockLoglevels.Add(StandardLoglevel.Error);
            builder.Routers.Add(router1);
            builder.Preprocessors.Add(preprocessor1);
            builder.MaximumRoutableQueueLength          = 1;
            builder.MaximumRoutablesForwardingCount     = 2;
            builder.WaitForMoreRoutablesForwardingDelay = TimeSpan.FromMilliseconds(3);

            var logfileConfiguration = builder.Build();

            logfileConfiguration.Routers.Should().Contain(router1);
            logfileConfiguration.Preprocessors.Should().Contain(preprocessor1);
            logfileConfiguration.MaximumRoutablesQueueLength.Should().Be(1);
            logfileConfiguration.MaximumRoutablesForwardingCount.Should().Be(2);
            logfileConfiguration.WaitForMoreRoutablesForwardingDelay.Should().Be(TimeSpan.FromMilliseconds(3));
            logfileConfiguration.Preprocessors.OfType <LoglevelFilter <StandardLoglevel> >().Single();
        }