.NET Core记录请求处理时间的中间件
2024-10-08
100
以下是一个示例的 .NET Core 中间件,用于记录请求处理时间的情况:
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using System;
using System.Diagnostics;
using System.Threading.Tasks;
public class TimingMiddleware
{
private readonly RequestDelegate _next;
private readonly ILogger<TimingMiddleware> _logger;
public TimingMiddleware(RequestDelegate next, ILogger<TimingMiddleware> logger)
{
_next = next;
_logger = logger;
}
public async Task Invoke(HttpContext context)
{
var stopwatch = Stopwatch.StartNew();
try
{
await _next(context);
}
finally
{
stopwatch.Stop();
var elapsedMilliseconds = stopwatch.ElapsedMilliseconds;
_logger.LogInformation($"Request took {elapsedMilliseconds} ms");
}
}
}
将上述代码放在你的项目中,然后在 Startup.cs 文件的 Configure 方法中使用该中间件:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// ...
app.UseMiddleware<TimingMiddleware>();
// ...
}
这样,每次请求进入中间件时,它会记录请求处理的时间,并将其记录到日志中。你可以使用项目的日志记录器(例如 ILogger<T>)进行记录,也可以使用其他日志库。
这是一个基本示例,你可以根据需要进行修改和扩展,例如记录请求的路径、HTTP 方法、响应状态码等其他有用的信息。也可以对请求时间做一些条件筛选,比如记录一些请求时间过长的请求,把请求的路径信息等记录下方便进行代码优化。
更新于:3个月前赞一波!1
相关文章
- .NET C# 使用Hook钩子实现全局监听键盘和鼠标
- BotSharp 基于 .NET 平台的开源 AI 聊天机器人框架
- .NET C#连接FTP实现文件上传下载
- ABP.Net Core使用教程(一)启动模版项目
- .NET C#中的Func、Predicate和Expression用法详解
- 5个高性能 .NET Core 图片处理库推荐
- ASP.NET如何将Views文件夹从项目分离
- .NET C# 读取编辑.AVIF图片文件
- .NET C# SkiaSharp读取.AVIF图片文件报错
- ASP.NET MVC最常用的设计模式代码示例
- .NET开源ORM FreeSql常见问题和解决方法
- 微软于发布了.NET 9 Release Candidate 2 提高整体质量
- 分享5个开源的.NET Excel读写操作库
- ASP.NET 中的 Session 丢失或无法保持状态
- .Net Core中Dapper的使用详解
- ASP.NET 使用Entity Framework (EF) 创建迁移修改SQLite数据库表结构
- 如何从.NET Framework迁移到.NET Core或.NET 6/7?
- 如何优化ASP.NET Core应用的性能?
- 10款.NET开发中推荐的代码分析和质量工具
- Blazor 与传统 ASP.NET MVC 的对比
文章评论
评论问答