首页 新闻 会员 周边 捐助

.net core webApi 怎样通过程序记录每个API的执行时间

0
悬赏园豆:40 [已解决问题] 解决于 2018-05-22 17:10

.net core webApi 怎样通过程序记录每个API的执行时间

Impossible的主页 Impossible | 初学一级 | 园豆:72
提问于:2018-05-15 13:40
< >
分享
最佳答案
0

可以自己写个middleware,参考 ASP.NET Core middleware to measure request processing time

收获园豆:30
dudu | 高人七级 |园豆:29642 | 2018-05-15 14:28
其他回答(1)
1

自定义一个过滤器,然后注册为全局的,监听所有Action,再过滤器中计时,计算进出所消耗时间,然后使用一个独立的线程保存这个日志,以免影响接口响应速度。

 public class TimmerFilter : IActionFilter
    {
        private readonly Stopwatch Timmer = new Stopwatch();
        
        public void OnActionExecuted(ActionExecutedContext context)
        {
            Timmer.Stop();
            var useTime = Timmer.ElapsedMilliseconds;
            //save usetime...
        }

        public void OnActionExecuting(ActionExecutingContext context)
        {
            Timmer.Start();
        }
    }
收获园豆:10
写代码的相声演员 | 园豆:517 (小虾三级) | 2018-05-15 14:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册