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
{
///