当页面执行(包括数据库调用等)花费超过3秒时,我想在我的ASP.NET MVC应用程序中实现某种自动“日志记录”,然后收集一些“间接证据”,例如调用了哪个动作,参数是什么,会话信息等等,所以我可以存储该信息以供审阅/通过电子邮件发送等等。
我怎么能这样做,最好是在全球范围内,而不是为我的许多控制器动作编辑/添加代码?
答案 0 :(得分:3)
global.asax中的BeginRequest和EndRequest是最基本的方式,记录开始和结束时间,然后从那里记录。另一种(更可重用的)方式可能是创建您自己的自定义提供程序,例如MSDN
上演示的答案 1 :(得分:2)
首先查看挂钩以下事件的global.asax方法:
- Application_BeginRequest
- Application_EndRequest
将时间记录在第一位,将其与最后一次的当前时间进行比较 - 如果记录太长则记录下来。你可以从HttpContext.Current获得动作等。