【发布时间】:2018-12-04 11:48:54
【问题描述】:
是否有任何现有的库可以仅使用方法注释来记录方法执行时间(我更喜欢 serilog、anotar.serilog)?
【问题讨论】:
-
@Selvin 等,这个问题已经回答了,但是这些问题的主题不同,不是相关的注释我的问题有什么意义
是否有任何现有的库可以仅使用方法注释来记录方法执行时间(我更喜欢 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>();
}
【讨论】: