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..2def663b 100644 --- a/src/Arcus.WebApi.Logging.Core/Correlation/HttpCorrelationMessageHandler.cs +++ b/src/Arcus.WebApi.Logging.Core/Correlation/HttpCorrelationMessageHandler.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; -using Arcus.Observability.Correlation; +using Arcus.Observability.Correlation; using Arcus.Observability.Telemetry.Core; using Microsoft.Extensions.Logging; @@ -28,8 +28,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 +52,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 +64,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 +77,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..cb525dea 100644 --- a/src/Arcus.WebApi.Logging.Core/Extensions/HttpClientExtensions.cs +++ b/src/Arcus.WebApi.Logging.Core/Extensions/HttpClientExtensions.cs @@ -1,4 +1,4 @@ -using System.Threading.Tasks; +using System.Threading.Tasks; using Arcus.Observability.Correlation; using Arcus.Observability.Telemetry.Core; using Arcus.WebApi.Logging.Core.Correlation; @@ -114,9 +114,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 +159,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..8a3790c5 100644 --- a/src/Arcus.WebApi.Logging/RequestTrackingMiddleware.cs +++ b/src/Arcus.WebApi.Logging/RequestTrackingMiddleware.cs @@ -1,9 +1,10 @@ -using System; +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; @@ -173,7 +174,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 +229,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 @@ -