Пример #1
0
        public void Add_correlation_token_to_log_context_and_Owin_context(string requestPath)
        {
            using (TestCorrelator.CreateContext())
            {
                AppFunc pipelineFunc(AppFunc next) => CorrelationToken.Middleware(next);

                var ctx = SetupOwinTestEnvironment(requestPath);

                var pipeline = pipelineFunc(m_TestModule(m_NoOp, m_Logger));
                var env      = ctx.Environment;
                pipeline(env);

                // m_Logger was enriched from the log context so it's properties should include CorrelationToken
                var tokenProp = TestCorrelator.GetLogEventsFromCurrentContext().Should().ContainSingle()
                                .Which.Properties.Should().ContainSingle();
                tokenProp.Which.Key.Should().Be("CorrelationToken");

                // the token was also saved in OwinContext with the same value
                tokenProp.Which.Value.ToString().Should().Equals(ctx.Get <string>("correlationToken"));

                // the token should be from request header if it is available there
                var tokenFromRequestHeader = ctx.Request.Headers["Correlation-Token"];
                if (!string.IsNullOrEmpty(tokenFromRequestHeader))
                {
                    tokenProp.Which.Value.ToString().Should().Equals(tokenFromRequestHeader);
                }
            }
        }
Пример #2
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            var log = ConfigureLogger();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            //            app.UseOwin(x => x.UseNancy());

            app.UseOwin(buildFunc =>
            {
                /*
                 * buildFunc(next => GlobalErrorLogging.Middleware(next, log));
                 * buildFunc(next => CorrelationToken.Middleware(next));
                 * buildFunc(next => RequestLogging.Middleware(next, log));
                 * buildFunc(next => PerformanceLogging.Middleware(next, log));
                 * buildFunc(next => new MonitoringMiddleware(next, HealthCheck).Invoke);
                 * buildFunc.UseNancy(opt => opt.Bootstrapper = new Bootstrapper(log));
                 */
                buildFunc(next => CorrelationToken.Middleware(next));
                buildFunc(next => RequestLogging.Middleware(next, log));
                buildFunc.UseNancy();
            });
        }
Пример #3
0
        public void Configure(IApplicationBuilder app)
        {
            var log = ConfigureLogger();

            app.UseOwin(buildFunc =>
            {
                buildFunc(next => GlobalErrorLogging.Middleware(next, log));
                buildFunc(next => CorrelationToken.Middleware(next));
                buildFunc(next => RequestLogging.Middleware(next, log));
                buildFunc(next => PerformanceLogging.Middleware(next, log));
                buildFunc(next => new MonitoringMiddleware(next, HealthCheck).Invoke);
                buildFunc.UseNancy(opt => opt.Bootstrapper = new Bootstrapper(log));
            });
        }
Пример #4
0
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            app.UseCors("Cors");

            Logger log = ConfigurationLogger();

            app.UseOwin(buildFunc =>
            {
                buildFunc(next => GlobalErrorLogging.Middleware(next, log));
                buildFunc(next => CorrelationToken.Middleware(next));
                buildFunc(next => RequestLogging.Middleware(next, log));
                buildFunc(next => PerformanceLogging.Middleware(next, log));
                buildFunc(next => new MonitoringMiddleware(next, HealthCheck).Invoke);
                buildFunc.UseNancy(opt => opt.Bootstrapper = new CustomBootstrapper());
            });
        }
Пример #5
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment envi)
        {
            var log = ILoggerFactory.ConfigureLogger();

            app.UseOwin(buildFunc => // let's you use OWIN with ASP.NET Core
            {
                buildFunc(next => CorrelationToken.Middleware(next));
                buildFunc(next => // buildFunc builds an OWIN pipeline from MidFunc
                          env =>
                {
                    var context = new OwinContext(env);
                    var method  = context.Request.Method;
                    var path    = context.Request.Path;
                    System.Console.WriteLine($"Got Request lambdas: {method} {path}");
                    return(next(env));
                });
                buildFunc(next => new ConsoleMiddleware(next).Invoke);
                buildFunc(next => RequestLogging.Middleware(next, log));
                buildFunc(next => PerformanceLogging.Middleware(next, log));
                buildFunc(next => new MonitoringMiddleware(next, ShoppingCart.Library.Stores.ShoppingCartStore.HealthCheck).Invoke);
                //buildFunc.UseNancy(); // this uses the default parameterless Nancy bootstrapper
                buildFunc.UseNancy(opt => opt.Bootstrapper = new Bootstrapper(log));
            });
        }