public Task AddLoggingRecord(LoggingRecord loggingRecord) { database.Add(loggingRecord); using (Computed.Invalidate()) GetLatest().Ignore(); return(Task.CompletedTask); }
protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { // var sender = serviceProvider.GetRequiredService<ISendLoggingRecord>(); stopwatch.Restart(); var response = await base.SendAsync(request, cancellationToken); stopwatch.Stop(); var loggingRecord = new LoggingRecord() { Duration = stopwatch.ElapsedMilliseconds, Method = request.Method.Method.ToUpperInvariant(), Path = request.RequestUri?.PathAndQuery?.ToString(), Browser = string.Empty, When = DateTime.UtcNow, Status = (int)response.StatusCode }; logger.LogWarning($"Request Logging {stopwatch.ElapsedMilliseconds}ms"); sender.EnQuee(loggingRecord); return(response); }
public void EnQuee(LoggingRecord record) => loggingRecord.OnNext(record);