首页 新闻 搜索 专区 学院

asp.net core中记录请求执行时间的是哪个middleware

0
悬赏园豆:20 [已解决问题] 解决于 2017-07-31 11:32

在asp.net core中当把日志级别设置为Information时,会在日志中记录请求执行时间(request execution time),比如:

info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
      Request finished in 3773.3901ms 200 text/html; charset=utf-8

请问这个记录请求执行时间的操作是由哪个中间件(middleware)完成的?

dudu的主页 dudu | 高人七级 | 园豆:36424
提问于:2017-07-31 11:07
< >
分享
最佳答案
0

这个地方没有使用 middleware,日志记录是由 HostingRequestFinishedLog 完成的,执行时间的计算是由 HostingApplicationDiagnostics 完成的。

执行开始时间的记录是在 HostingApplication 的 CreateContext 方法中调用 HostingApplicationDiagnostics 的 BeginRequest 方法完成的。执行结束时间的记录是在 HostingApplication 的 DisposeContext 方法中调用 HostingApplicationDiagnostics 的 RequestEnd 方法完成的。

详见 Microsoft.AspNetCore.Hosting 的开源代码:https://github.com/aspnet/Hosting

dudu | 高人七级 |园豆:36424 | 2017-07-31 11:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册