From 4b45db7b184cc42e677cb95a5bd7acc9991cbf34 Mon Sep 17 00:00:00 2001 From: Stijn Moreels <9039753+stijnmoreels@users.noreply.github.com> Date: Thu, 5 Feb 2026 07:27:39 +0100 Subject: [PATCH 1/4] chore(deps): use newest arcus.observability version --- .../Arcus.WebApi.Logging.Core.csproj | 5 ++-- .../HttpCorrelationMessageHandler.cs | 22 ++++++++++------- .../Extensions/HttpClientExtensions.cs | 16 ++++++++----- .../Arcus.WebApi.Logging.csproj | 6 ++--- .../RequestTrackingMiddleware.cs | 24 ++++++++++++------- .../Arcus.WebApi.Tests.Integration.csproj | 1 - 6 files changed, 43 insertions(+), 31 deletions(-) diff --git a/src/Arcus.WebApi.Logging.Core/Arcus.WebApi.Logging.Core.csproj b/src/Arcus.WebApi.Logging.Core/Arcus.WebApi.Logging.Core.csproj index d43c4789..c2954ff6 100644 --- a/src/Arcus.WebApi.Logging.Core/Arcus.WebApi.Logging.Core.csproj +++ b/src/Arcus.WebApi.Logging.Core/Arcus.WebApi.Logging.Core.csproj @@ -26,9 +26,8 @@ - - - + + diff --git a/src/Arcus.WebApi.Logging.Core/Correlation/HttpCorrelationMessageHandler.cs b/src/Arcus.WebApi.Logging.Core/Correlation/HttpCorrelationMessageHandler.cs index 13bb04f6..0a1decac 100644 --- a/src/Arcus.WebApi.Logging.Core/Correlation/HttpCorrelationMessageHandler.cs +++ b/src/Arcus.WebApi.Logging.Core/Correlation/HttpCorrelationMessageHandler.cs @@ -1,11 +1,13 @@ -using System; +using Arcus.Observability.Correlation; +using Arcus.Observability.Telemetry.Core; + +using Microsoft.Extensions.Logging; + +using System; using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; -using Arcus.Observability.Correlation; -using Arcus.Observability.Telemetry.Core; -using Microsoft.Extensions.Logging; namespace Arcus.WebApi.Logging.Core.Correlation { @@ -28,8 +30,8 @@ public class HttpCorrelationMessageHandler : DelegatingHandler /// Thrown when the , , or is null. /// public HttpCorrelationMessageHandler( - IHttpCorrelationInfoAccessor correlationInfoAccessor, - HttpCorrelationClientOptions options, + IHttpCorrelationInfoAccessor correlationInfoAccessor, + HttpCorrelationClientOptions options, ILogger logger) { _correlationInfoAccessor = correlationInfoAccessor ?? throw new ArgumentNullException(nameof(correlationInfoAccessor), "Requires a HTTP context accessor to retrieve the current HTTP correlation"); @@ -52,7 +54,7 @@ protected override async Task SendAsync(HttpRequestMessage CorrelationInfo correlation = DetermineCorrelationInfo(); request.Headers.Add(_options.TransactionIdHeaderName, correlation.TransactionId); - + using (var measurement = DurationMeasurement.Start()) { try @@ -64,7 +66,9 @@ protected override async Task SendAsync(HttpRequestMessage } finally { +#pragma warning disable CS0618 // Type or member is obsolete _logger.LogHttpDependency(request, statusCode, measurement, dependencyId, _options.TelemetryContext); +#pragma warning restore CS0618 // Type or member is obsolete } } } @@ -75,8 +79,8 @@ private CorrelationInfo DetermineCorrelationInfo() if (correlation is null) { throw new InvalidOperationException( - "Cannot enrich the HTTP request with HTTP correlation because no HTTP correlation was registered in the application, " - + "make sure that you register the HTTP correlation services with 'services.AddHttpCorrelation()' " + "Cannot enrich the HTTP request with HTTP correlation because no HTTP correlation was registered in the application, " + + "make sure that you register the HTTP correlation services with 'services.AddHttpCorrelation()' " + "and that you use the HTTP correlation middleware 'app.UseHttpCorrelation()' in API scenario's"); } diff --git a/src/Arcus.WebApi.Logging.Core/Extensions/HttpClientExtensions.cs b/src/Arcus.WebApi.Logging.Core/Extensions/HttpClientExtensions.cs index 7f0081a7..b0d3be19 100644 --- a/src/Arcus.WebApi.Logging.Core/Extensions/HttpClientExtensions.cs +++ b/src/Arcus.WebApi.Logging.Core/Extensions/HttpClientExtensions.cs @@ -1,10 +1,12 @@ -using System.Threading.Tasks; -using Arcus.Observability.Correlation; +using Arcus.Observability.Correlation; using Arcus.Observability.Telemetry.Core; using Arcus.WebApi.Logging.Core.Correlation; + using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using System.Threading.Tasks; + // ReSharper disable once CheckNamespace namespace System.Net.Http { @@ -114,9 +116,9 @@ public static async Task SendAsync( /// Thrown when the , , , is null. /// public static async Task SendAsync( - this HttpClient client, - HttpRequestMessage request, - CorrelationInfo correlationInfo, + this HttpClient client, + HttpRequestMessage request, + CorrelationInfo correlationInfo, ILogger logger, Action configureOptions) { @@ -159,8 +161,10 @@ public static async Task SendAsync( } finally { +#pragma warning disable CS0618 // Type or member is obsolete logger.LogHttpDependency(request, statusCode, measurement, dependencyId, options.TelemetryContext); - } +#pragma warning restore CS0618 // Type or member is obsolete + } } } } diff --git a/src/Arcus.WebApi.Logging/Arcus.WebApi.Logging.csproj b/src/Arcus.WebApi.Logging/Arcus.WebApi.Logging.csproj index a4e337f3..7d1b26f5 100644 --- a/src/Arcus.WebApi.Logging/Arcus.WebApi.Logging.csproj +++ b/src/Arcus.WebApi.Logging/Arcus.WebApi.Logging.csproj @@ -26,10 +26,8 @@ - - - - + + diff --git a/src/Arcus.WebApi.Logging/RequestTrackingMiddleware.cs b/src/Arcus.WebApi.Logging/RequestTrackingMiddleware.cs index f8813ee4..508765e1 100644 --- a/src/Arcus.WebApi.Logging/RequestTrackingMiddleware.cs +++ b/src/Arcus.WebApi.Logging/RequestTrackingMiddleware.cs @@ -1,15 +1,18 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Arcus.Observability.Telemetry.Core; +using Arcus.Observability.Telemetry.Core; +using Arcus.Observability.Telemetry.Core.Logging; using Arcus.WebApi.Logging.Core.RequestTracking; + using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; + namespace Arcus.WebApi.Logging { /// @@ -173,7 +176,7 @@ private async Task TrackRequest(HttpContext httpContext, Exclude attributeExclud if (AllowedToTrackStatusCode(httpContext.Response.StatusCode, attributeTrackedStatusCodes, _logger)) { string responseBody = await GetPotentialResponseBodyAsync(httpContext, includeResponseBody); - + LogRequest(requestBody, responseBody, httpContext, duration); } @@ -228,7 +231,12 @@ private void LogRequest(string requestBody, string responseBody, HttpContext htt var operationName = DetermineRequestOperationName(httpContext); - _logger.LogRequest(httpContext.Request, httpContext.Response, operationName, duration, telemetryContext); + var request = httpContext.Request; + _logger.LogWarning(MessageFormats.RequestFormat, +#pragma warning disable CS0618 // Type or member is obsolete + RequestLogEntry.CreateForHttpRequest( +#pragma warning restore CS0618 // Type or member is obsolete + request.Method, request.Scheme, request.Host.ToString(), request.Path, operationName, httpContext.Response.StatusCode, duration.StartTime, duration.Elapsed, telemetryContext)); } private static string DetermineRequestOperationName(HttpContext httpContext) diff --git a/src/Arcus.WebApi.Tests.Integration/Arcus.WebApi.Tests.Integration.csproj b/src/Arcus.WebApi.Tests.Integration/Arcus.WebApi.Tests.Integration.csproj index d5ac7e05..fac5606e 100644 --- a/src/Arcus.WebApi.Tests.Integration/Arcus.WebApi.Tests.Integration.csproj +++ b/src/Arcus.WebApi.Tests.Integration/Arcus.WebApi.Tests.Integration.csproj @@ -19,7 +19,6 @@ - From e0cd83850dbc3d5bc0e4750442bc5db5e864eb06 Mon Sep 17 00:00:00 2001 From: Stijn Moreels <9039753+stijnmoreels@users.noreply.github.com> Date: Thu, 5 Feb 2026 07:29:50 +0100 Subject: [PATCH 2/4] Update HttpCorrelationMessageHandler.cs --- .../Correlation/HttpCorrelationMessageHandler.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Arcus.WebApi.Logging.Core/Correlation/HttpCorrelationMessageHandler.cs b/src/Arcus.WebApi.Logging.Core/Correlation/HttpCorrelationMessageHandler.cs index 0a1decac..2def663b 100644 --- a/src/Arcus.WebApi.Logging.Core/Correlation/HttpCorrelationMessageHandler.cs +++ b/src/Arcus.WebApi.Logging.Core/Correlation/HttpCorrelationMessageHandler.cs @@ -1,13 +1,11 @@ -using Arcus.Observability.Correlation; -using Arcus.Observability.Telemetry.Core; - -using Microsoft.Extensions.Logging; - using System; using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; +using Arcus.Observability.Correlation; +using Arcus.Observability.Telemetry.Core; +using Microsoft.Extensions.Logging; namespace Arcus.WebApi.Logging.Core.Correlation { From c0fbd42329aaf01ff9f35dd096688385542d4f5c Mon Sep 17 00:00:00 2001 From: Stijn Moreels <9039753+stijnmoreels@users.noreply.github.com> Date: Thu, 5 Feb 2026 07:30:23 +0100 Subject: [PATCH 3/4] Reorder using directives in HttpClientExtensions.cs --- .../Extensions/HttpClientExtensions.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Arcus.WebApi.Logging.Core/Extensions/HttpClientExtensions.cs b/src/Arcus.WebApi.Logging.Core/Extensions/HttpClientExtensions.cs index b0d3be19..cb525dea 100644 --- a/src/Arcus.WebApi.Logging.Core/Extensions/HttpClientExtensions.cs +++ b/src/Arcus.WebApi.Logging.Core/Extensions/HttpClientExtensions.cs @@ -1,12 +1,10 @@ -using Arcus.Observability.Correlation; +using System.Threading.Tasks; +using Arcus.Observability.Correlation; using Arcus.Observability.Telemetry.Core; using Arcus.WebApi.Logging.Core.Correlation; - using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using System.Threading.Tasks; - // ReSharper disable once CheckNamespace namespace System.Net.Http { From 9a42b74da0b47939ec89c8d165a5c1129f36700a Mon Sep 17 00:00:00 2001 From: Stijn Moreels <9039753+stijnmoreels@users.noreply.github.com> Date: Thu, 5 Feb 2026 07:30:51 +0100 Subject: [PATCH 4/4] Refactor using directives in RequestTrackingMiddleware Removed redundant using directives to clean up the code. --- .../RequestTrackingMiddleware.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Arcus.WebApi.Logging/RequestTrackingMiddleware.cs b/src/Arcus.WebApi.Logging/RequestTrackingMiddleware.cs index 508765e1..8a3790c5 100644 --- a/src/Arcus.WebApi.Logging/RequestTrackingMiddleware.cs +++ b/src/Arcus.WebApi.Logging/RequestTrackingMiddleware.cs @@ -1,18 +1,16 @@ -using Arcus.Observability.Telemetry.Core; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using Arcus.Observability.Telemetry.Core; using Arcus.Observability.Telemetry.Core.Logging; using Arcus.WebApi.Logging.Core.RequestTracking; - using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; - namespace Arcus.WebApi.Logging { ///