public async Task Invoke(HttpContext context) { var stopWatch = Stopwatch.StartNew(); var session = new ProfilerSession(); try { requestSession.Start(context, session); await next(context); } finally { stopWatch.Stop(); log.LogInformation(w => { session.Write(w); w.WriteProperty("elapsedRequestMs", stopWatch.ElapsedMilliseconds); }); } }