This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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