最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年09月02日 15:46:43   作者:WeihanLi  
這篇文章主要給大家介紹了關于如何給asp.net core寫個中間件記錄接口耗時的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用asp.net core具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

Intro

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

中間件實現

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

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 就是對應接口的耗時時間,也可以按 ElapsedMilliseconds 范圍來搜索,比如篩選耗時時間大于 1s 的日志

Memo

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

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

Reference

https://github.com/WeihanLi/ActivityReservation

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

相關文章

  • ASP.NET web.config中 數據庫連接字符串加密解密

    ASP.NET web.config中 數據庫連接字符串加密解密

    本文主要介紹利用aspnet_regiis.exe工具對web.config中connectionStrings節(jié)點進行加密和解密的過程,希望對大家有所幫助。
    2016-05-05
  • .NET Core讀取配置文件方式詳細總結

    .NET Core讀取配置文件方式詳細總結

    這篇文章主要為大家詳細總結了.NET Core讀取配置文件方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • .net開發(fā)人員常犯的錯誤分析小結

    .net開發(fā)人員常犯的錯誤分析小結

    我最新一直在和新手和入手級開發(fā)人員打交道,我注意到一些開發(fā)人員(甚至是老手)在粗心時常犯的錯誤。這些錯誤各不相同,從工具的使用到網絡服務的適當應用都有。以下是六個主要的開發(fā)錯誤。
    2009-03-03
  • MAUI中實現構建跨平臺原生控件

    MAUI中實現構建跨平臺原生控件

    這篇文章介紹了MAUI中實現構建跨平臺原生控件的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-02-02
  • asp.net css控制打印功能方法實例

    asp.net css控制打印功能方法實例

    這篇文章介紹了asp.net css控制打印功能方法實例,有需要的可以參考一下
    2013-10-10
  • 擴展了Repeater控件的EmptyDataTemplate模板功能

    擴展了Repeater控件的EmptyDataTemplate模板功能

    Repeater控件是一個數據顯示控件,該控件允許通過為列表中顯示的每一項重復使用指定的模板來自定義布局
    2013-01-01
  • ASP.NET中GridView的文件輸出流方式

    ASP.NET中GridView的文件輸出流方式

    本文的主要內容是講ASP.NET中GridView輸出顯示的文件,這是個人項目中的一點小經驗,希望能給到有需要幫助的人。
    2016-08-08
  • ASP.NET MVC學習教程之Razor語法

    ASP.NET MVC學習教程之Razor語法

    這篇文章主要給大家介紹了關于ASP.NET MVC學習教程之Razor語法的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-05-05
  • ASP.NET圖片上傳實例(附源碼)

    ASP.NET圖片上傳實例(附源碼)

    這篇文章主要介紹了一個ASP.NET圖片上傳實例,文章還為大家提供了ASP.NET圖片自動上傳和局部刷新顯示的源碼,希望大家喜歡
    2015-11-11
  • 淺談ASP.NET Core 2.0 帶初始參數的中間件(譯)

    淺談ASP.NET Core 2.0 帶初始參數的中間件(譯)

    這篇文章主要介紹了淺談ASP.NET Core 2.0 帶初始參數的中間件(譯),非常具有實用價值,需要的朋友可以參考下
    2017-10-10

最新評論

玉溪市| 克山县| 凤凰县| 雷波县| 苏尼特右旗| 梁河县| 西昌市| 旌德县| 绍兴县| 旺苍县| 景德镇市| 永嘉县| 米泉市| 子洲县| 镇江市| 梓潼县| 上杭县| 孙吴县| 洛扎县| 永和县| 菏泽市| 丰都县| 县级市| 延吉市| 安岳县| 曲靖市| 娱乐| 伊春市| 蓬莱市| 上高县| 北宁市| 通化市| 微博| 克拉玛依市| 冷水江市| 涟源市| 桑植县| 建瓯市| 新晃| 屯门区| 莲花县|