亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

Intro

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

中間件實現(xiàn)

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

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 Datagridview自動換行的小例子

    ASP.NET Datagridview自動換行的小例子

    這篇文章介紹了ASP.NET Datagridview自動換行的代碼,有需要的朋友可以參考一下,希望對你有所幫助
    2013-07-07
  • 基于.Net中的協(xié)變與逆變的深入分析

    基于.Net中的協(xié)變與逆變的深入分析

    本篇文章是對.Net中的協(xié)變與逆變進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • ASP.NET?MVC中的路由原理與用法

    ASP.NET?MVC中的路由原理與用法

    本文詳細講解了ASP.NET?MVC中的路由原理與用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • .Net中關于stirng轉System.Type的一種實現(xiàn)思路詳解

    .Net中關于stirng轉System.Type的一種實現(xiàn)思路詳解

    這篇文章主要給大家介紹了.Net中關于stirng轉System.Type的一種實現(xiàn)思路的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-05-05
  • 理解ASP.NET?Core?錯誤處理機制(Handle?Errors)

    理解ASP.NET?Core?錯誤處理機制(Handle?Errors)

    這篇文章主要介紹了理解ASP.NET?Core?錯誤處理(Handle?Errors)?,在這里需要注意的是,與“異常處理”有關的中間件,一定要盡早添加,這樣,它可以最大限度的捕獲后續(xù)中間件拋出的未處理異常。感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • ASP.NET Core與NLog集成的完整步驟

    ASP.NET Core與NLog集成的完整步驟

    NLog是一個免費的日志記錄框架,專門為.net平臺下的框架提供日志功能,下面這篇文章主要給大家介紹了關于ASP.NET Core與NLog集成的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-07-07
  • ADO.NET無連接模式的詳細介紹

    ADO.NET無連接模式的詳細介紹

    這篇文章詳細介紹了ADO.NET無連接模式及操作實例,有需要的朋友可以參考一下
    2013-10-10
  • aspx文件格式使用URLRewriter實現(xiàn)靜態(tài)化變成html

    aspx文件格式使用URLRewriter實現(xiàn)靜態(tài)化變成html

    如何隱藏aspx文件格式,變成html,使用asp.net 開發(fā)的網(wǎng)頁程序,使用URLRewriter.dll 實現(xiàn)靜態(tài)化,接下來將介紹下具體操作步驟,感興趣的朋友可以參考下
    2013-04-04
  • .net c# gif動畫如何添加圖片水印實現(xiàn)思路及代碼

    .net c# gif動畫如何添加圖片水印實現(xiàn)思路及代碼

    本文將詳細介紹下c#實現(xiàn)gif動畫添加圖片水印,思路很清晰,感興趣的你可以參考下哈,希望可以幫助到你
    2013-03-03
  • .Net Core WebApi部署在Linux服務器上的方法

    .Net Core WebApi部署在Linux服務器上的方法

    這篇文章主要介紹了.Net Core WebApi部署在Linux服務器上的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03

最新評論