From 0db74049ef17f3a12f337538d1ae2b7358176209 Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: 2023年9月25日 10:08:48 +1000 Subject: [PATCH] use Stopwatch for ElapsedMilliseconds --- .../AspNetCore/RequestLoggingMiddleware.cs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/Serilog.AspNetCore/AspNetCore/RequestLoggingMiddleware.cs b/src/Serilog.AspNetCore/AspNetCore/RequestLoggingMiddleware.cs index 0b0b3eb..e1d3d68 100644 --- a/src/Serilog.AspNetCore/AspNetCore/RequestLoggingMiddleware.cs +++ b/src/Serilog.AspNetCore/AspNetCore/RequestLoggingMiddleware.cs @@ -53,20 +53,19 @@ public async Task Invoke(HttpContext httpContext) { if (httpContext == null) throw new ArgumentNullException(nameof(httpContext)); - var start = Stopwatch.GetTimestamp(); + var stopwatch = Stopwatch.StartNew(); var collector = _diagnosticContext.BeginCollection(); try { await _next(httpContext); - var elapsedMs = GetElapsedMilliseconds(start, Stopwatch.GetTimestamp()); var statusCode = httpContext.Response.StatusCode; - LogCompletion(httpContext, collector, statusCode, elapsedMs, null); + LogCompletion(httpContext, collector, statusCode, stopwatch.ElapsedMilliseconds, null); } catch (Exception ex) // Never caught, because `LogCompletion()` returns false. This ensures e.g. the developer exception page is still // shown, although it does also mean we see a duplicate "unhandled exception" event from ASP.NET Core. - when (LogCompletion(httpContext, collector, 500, GetElapsedMilliseconds(start, Stopwatch.GetTimestamp()), ex)) + when (LogCompletion(httpContext, collector, 500, stopwatch.ElapsedMilliseconds, ex)) { } finally @@ -97,11 +96,6 @@ bool LogCompletion(HttpContext httpContext, DiagnosticContextCollector collector return false; } - static double GetElapsedMilliseconds(long start, long stop) - { - return (stop - start) * 1000 / (double)Stopwatch.Frequency; - } - static string GetPath(HttpContext httpContext, bool includeQueryInRequestPath) { /*

AltStyle によって変換されたページ (->オリジナル) /