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); } } }
// 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(); }); }
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)); }); }
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()); }); }
// 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)); }); }