using Sony.Filtr.ApolloAPI.EventSource; using System.Diagnostics; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace Sony.Filtr.ApolloAPI { public class ApolloLoggingMessageHandler : DelegatingHandler { public ApolloLoggingMessageHandler(HttpMessageHandler innerHandler) : base(innerHandler) { } protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { Stopwatch sw = new Stopwatch(); sw.Start(); ApolloApolloWebApiEventSource.Log.GetUrlStart(request.RequestUri.ToString()); var response = await base.SendAsync(request, cancellationToken); sw.Stop(); ApolloApolloWebApiEventSource.Log.GetUrlStop(request.RequestUri.ToString(), sw.Elapsed.TotalMilliseconds); return response; } } }