using System.Diagnostics; namespace UniVerse.Api.Middleware; public class RequestLoggingMiddleware { private readonly RequestDelegate _next; private readonly ILogger _logger; public RequestLoggingMiddleware(RequestDelegate next, ILogger logger) { _next = next; _logger = logger; } public async Task InvokeAsync(HttpContext context) { var sw = Stopwatch.StartNew(); await _next(context); sw.Stop(); _logger.LogInformation("{Method} {Path} → {StatusCode} ({Elapsed}ms)", context.Request.Method, context.Request.Path, context.Response.StatusCode, sw.ElapsedMilliseconds); } }