public async Task <TResponse> Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate <TResponse> next) { _timer.Start(); var response = await next(); _timer.Stop(); var elapsedMilliseconds = _timer.ElapsedMilliseconds; if (elapsedMilliseconds <= 500) { return(response); } var user = await _loggedInUserProvider.GetUserIdentifierAsync(); var model = JsonConvert.SerializeObject(request, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, DateTimeZoneHandling = DateTimeZoneHandling.Utc }); _logger.LogWarning($"Long Running Request: [{typeof(TRequest).Name}] ({elapsedMilliseconds} milliseconds) for user [{user ?? "Anonymous"}] with model: {model};"); return(response); }
public async Task Process(TRequest request, CancellationToken cancellationToken) { var user = await _loggedInUserProvider.GetUserIdentifierAsync(); var model = JsonConvert.SerializeObject(request, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, DateTimeZoneHandling = DateTimeZoneHandling.Utc }); _logger.LogInformation($"Proccessing Request: [{typeof(TRequest).Name}] for user [{user ?? "Anonymous"}] with model: {model};"); }