Files
Net.Sdk.Web.Extensions/AspNetCore.Extensions/Middleware/HeaderLoggingMiddleware.cs
T
2024-08-16 11:24:48 +02:00

23 lines
739 B
C#

using System.Core.Extensions;
using System.Extensions;
namespace AspNetCore.Extensions.Middleware;
public sealed class HeaderLoggingMiddleware : IMiddleware
{
private readonly ILogger<HeaderLoggingMiddleware> logger;
public HeaderLoggingMiddleware(
ILogger<HeaderLoggingMiddleware> logger)
{
this.logger = logger.ThrowIfNull();
}
public async Task InvokeAsync(HttpContext context, RequestDelegate next)
{
var scopedLogger = this.logger.CreateScopedLogger(nameof(this.InvokeAsync), string.Empty);
scopedLogger.LogDebug(string.Join("\n", context.Request.Headers.Select(kvp => $"{kvp.Key}: {string.Join(",", kvp.Value.OfType<string>())}")));
await next(context);
}
}