public HomeOrchestratorLogger( ICoreLogger logger, CorrelationProvider correlationProvider) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _correlationProvider = correlationProvider ?? throw new ArgumentNullException(nameof(correlationProvider)); }
public async Task InvokeAsync_FindsCorrelationHeader() { var correlationId = "1234"; var context = new DefaultHttpContext(); var correlationProvider = new CorrelationProvider(); var correlationMiddleware = new LoggingCorrelationMiddleware(correlationProvider, new NullLogger <LoggingCorrelationMiddleware>(), obtainCorrelationIdFromRequestHeaders: true); context.Request.Headers.Add("X-Request-Id", correlationId); await correlationMiddleware.InvokeAsync(context, (innerHttpContext) => Task.FromResult(0)); Assert.AreEqual(correlationId, correlationProvider.GetCorrelationId()); }
public static IServiceCollection AddLoggingCorrelation(this IServiceCollection services, string correlationIdHeaderName = "x-request-id", bool obtainCorrelationIdFromRequestHeaders = false) { services.TryAddScoped <ICorrelationProvider>(ILoggerFactory => { var provider = new CorrelationProvider(correlationIdHeaderName); return(provider); }); services.TryAddScoped <CorrelationProviderAccessor>(); services.TryAddScoped <LoggingCorrelationMiddleware>(fact => { return(new LoggingCorrelationMiddleware(fact.GetRequiredService <ICorrelationProvider>(), fact.GetRequiredService <ILogger <LoggingCorrelationMiddleware> >(), correlationIdHeaderName, obtainCorrelationIdFromRequestHeaders)); }); return(services); }
public void AddCorrelationId_without_existing_correlationId_set_correlationId() { var correlationId = Guid.NewGuid().ToString("D"); var configuration = Substitute.For <IConfiguration>(); configuration[CorrelationProvider.CorrelationIdConfigKey].Returns(CorrelationProvider.DefaultCorrelationIdHeaderKey); var httpContextAccessor = Substitute.For <IHttpContextAccessor>(); httpContextAccessor.HttpContext.Returns(new DefaultHttpContext()); var correlationIdProvider = new CorrelationProvider(configuration, httpContextAccessor); correlationIdProvider.AddCorrelationId(); httpContextAccessor.HttpContext.Request.Headers[CorrelationProvider.DefaultCorrelationIdHeaderKey].Should().NotBeNullOrEmpty(); }
public void AddCorrelationId_with_correlationId_set_does_change_correlationId() { var correlationId = Guid.NewGuid().ToString("D"); var configuration = Substitute.For <IConfiguration>(); configuration[CorrelationProvider.CorrelationIdConfigKey].Returns(CorrelationProvider.DefaultCorrelationIdHeaderKey); var httpContextAccessor = Substitute.For <IHttpContextAccessor>(); httpContextAccessor.HttpContext.Returns(new DefaultHttpContext()); httpContextAccessor.HttpContext.Request.Headers[CorrelationProvider.DefaultCorrelationIdHeaderKey] = correlationId; var correlationIdProvider = new CorrelationProvider(configuration, httpContextAccessor); correlationIdProvider.AddCorrelationId(); httpContextAccessor.HttpContext.Request.Headers[CorrelationProvider.DefaultCorrelationIdHeaderKey].Should().BeEquivalentTo(correlationId); }
private (Mock <ILogger <CoreLogger> > LoggerStub, CorrelationProvider Correlation, CausationProvider Causation) GetHelpers() { var loggerStub = new Mock <ILogger <CoreLogger> >(); var httpContext = new DefaultHttpContext(); var httpRequest = new DefaultHttpRequest(httpContext); var httpContextAccessor = new HttpContextAccessor { HttpContext = httpContext }; var correlation = CorrelationProvider.Create(); var causation = new CausationProvider(httpContextAccessor); httpRequest.Headers.Add("X-Correlation-ID", correlation.CorrelationId.ToString()); return(loggerStub, correlation, causation); }
public void GetCorrelation_return_correlation_from_request_header() { var configuration = Substitute.For <IConfiguration>(); var correlationId = Guid.NewGuid().ToString("D"); configuration[CorrelationProvider.CorrelationIdConfigKey].Returns(CorrelationProvider.DefaultCorrelationIdHeaderKey); var groupId = Guid.NewGuid().ToString("D"); configuration[CorrelationProvider.CorrelationIdConfigKey].Returns(CorrelationProvider.DefaultCorrelationIdHeaderKey); var httpContextAccessor = Substitute.For <IHttpContextAccessor>(); httpContextAccessor.HttpContext.Returns(new DefaultHttpContext()); httpContextAccessor.HttpContext.Request.Headers[CorrelationProvider.DefaultCorrelationIdHeaderKey] = correlationId; var correlationIdProvider = new CorrelationProvider(configuration, httpContextAccessor); correlationIdProvider.GetCorrelationId().Should().Be(correlationId); }
public ProductClient(CorrelationProvider correlationProvider) { this.DefaultRequestHeaders.Add(HttpConstants.Headers.CorrelationId, correlationProvider); this.BaseAddress = new Uri("http://localhost:5000/api/products/", UriKind.RelativeOrAbsolute); }
public static IServiceCollection AddCorrelationAndCausation(this IServiceCollection services) { return(services .AddScoped(s => CorrelationProvider.Create()) .AddScoped <CausationProvider>()); }
public ExceptionHandlerLogger(ICoreLogger logger, CorrelationProvider correlationProvider) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _correlationProvider = correlationProvider ?? throw new ArgumentNullException(nameof(correlationProvider)); }