c# - 使用 .NET 注释记录方法执行时间
问题描述
是否有任何现有的库可以仅使用方法注释来记录方法执行时间(我更喜欢 serilog、anotar.serilog)?
解决方案
如果您的意图是记录控制器/操作的经过时间。您可以为此编写自己的中间件。检查下面的示例:
public class DiagnosticsMiddleware
{
private readonly RequestDelegate _next;
public DiagnosticsMiddleware(RequestDelegate next, IElasticClient esClient)
{
_next = next;
_esClient = esClient;
}
public async Task Invoke(HttpContext context)
{
Stopwatch sw = Stopwatch.StartNew();
await _next(context);
sw.Stop();
var elapsedTime = sw.ElapsedTicks / (Stopwatch.Frequency / (1000L * 1000L));
LogContext.PushProperty("ElapsedTime", elapsedTime);
}
}
你可以像这样配置它
public void Configure(IApplicationBuilder app)
{
app.UseMiddleware<ContextEnricherMiddleware>();
}
推荐阅读
- java - java数组和输入
- javascript - Three.js:设置`texture.needsUpdate = true`很慢
- python - GMT 时间戳的固定偏移规范
- r - 为 R 安装 TensorFlow 时遇到问题
- dart - 如何为 FAB 设置动作(AngularDart 5、Dart 2)
- android - Firebase Analytics:在控制台中显示“值”参数的平均值和时间平均值,例如从 Android 应用发送的事件的“hh:mm:ss”
- pandas - 如何在月度数据中向 Pandas 添加缺失数据
- jquery - 用 css 和 svg 绘制区块链
- windows - Powershell - 在特定时间后关闭 Out-GridView
- html - VBA在IE中单击登录按钮