欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

ASP.NET

當(dāng)前位置:主頁 > 網(wǎng)絡(luò)編程 > ASP.NET >

如何給asp.net core寫個中間件記錄接口耗時

來源:本站原創(chuàng)|時間:2020-01-11|欄目:ASP.NET|點擊: 次

Intro

寫接口的難免會遇到別人說接口比較慢,到底慢多少,一個接口服務(wù)器處理究竟花了多長時間,如果能有具體的數(shù)字來記錄每個接口耗時多少,別人再說接口慢的時候看一下接口耗時統(tǒng)計,如果幾毫秒就處理完了,對不起這鍋我不背。

中間件實現(xiàn)

asp.net core 的運(yùn)行是一個又一個的中間件來完成的,因此我們只需要定義自己的中間件,記錄請求開始處理前的時間和處理結(jié)束后的時間,這里的中間件把請求的耗時輸出到日志里了,你也可以根據(jù)需要輸出到響應(yīng)頭或其他地方。

public static class PerformanceLogExtension
{
 public static IApplicationBuilder UsePerformanceLog(this IApplicationBuilder applicationBuilder)
 {
  applicationBuilder.Use(async (context, next) =>
   {
    var profiler = new StopwatchProfiler();
    profiler.Start();
    await next();
    profiler.Stop();

    var logger = context.RequestServices.GetService<ILoggerFactory>()
     .CreateLogger("PerformanceLog");
    logger.LogInformation("TraceId:{TraceId}, RequestMethod:{RequestMethod}, RequestPath:{RequestPath}, ElapsedMilliseconds:{ElapsedMilliseconds}, Response StatusCode: {StatusCode}",
          context.TraceIdentifier, context.Request.Method, context.Request.Path, profiler.ElapsedMilliseconds, context.Response.StatusCode);
   });
  return applicationBuilder;
 }
}

中間件配置

在 Startup 里配置請求處理管道,示例配置如下:

app.UsePerformanceLog();

app.UseAuthentication();
app.UseMvc(routes =>
 {
  // ...
 });
// ...

示例

在日志里按 Logger 名稱 “PerformanceLog” 搜索日志,日志里的 ElapsedMilliseconds 就是對應(yīng)接口的耗時時間,也可以按 ElapsedMilliseconds 范圍來搜索,比如篩選耗時時間大于 1s 的日志

Memo

這個中間件比較簡單,只是一個處理思路。

大型應(yīng)用可以用比較專業(yè)的 APM 工具,最近比較火的 Skywalking 項目可以了解一下,支持 .NET Core, 詳細(xì)信息參考: https://github.com/SkyAPM/SkyAPM-dotnet

Reference

https://github.com/WeihanLi/ActivityReservation

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對我們的支持。

上一篇:.NET Core 實現(xiàn)微信小程序支付功能(統(tǒng)一下單)

欄    目:ASP.NET

下一篇:.Net Core WebApi的簡單創(chuàng)建以及使用方法

本文標(biāo)題:如何給asp.net core寫個中間件記錄接口耗時

本文地址:http://mengdiqiu.com.cn/a1/ASP_NET/10882.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有