Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
public class LogUserAgentMiddleware : IMiddleware
private readonly ILogger _logger;
public LogUserAgentMiddleware(ILogger<LogUserAgentMiddleware> logger)
// The null check here is belt and braces in case there is a
// custom middleware factory that uses GetService instead of
// GetRequiredService. If using the default, this check is not
// required.
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
public async Task InvokeAsync(HttpContext context, RequestDelegate next)
var userAgent = context.Request.Headers.GetCommaSeparatedValues("User-Agent").LastOrDefault();
if (userAgent is not null) _logger?.LogTrace($"User Agent : {userAgent}");
await next(context);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment