在ASP.NET中自动记录长/异常页面执行时间

时间:2009-08-18 08:06:39

标签: asp.net asp.net-mvc logging performance

当页面执行(包括数据库调用等)花费超过3秒时,我想在我的ASP.NET MVC应用程序中实现某种自动“日志记录”,然后收集一些“间接证据”,例如调用了哪个动作,参数是什么,会话信息等等,所以我可以存储该信息以供审阅/通过电子邮件发送等等。

我怎么能这样做,最好是在全球范围内,而不是为我的许多控制器动作编辑/添加代码?

2 个答案:

答案 0 :(得分:3)

global.asax中的BeginRequest和EndRequest是最基本的方式,记录开始和结束时间,然后从那里记录。另一种(更可重用的)方式可能是创建您自己的自定义提供程序,例如MSDN

上演示的

答案 1 :(得分:2)

首先查看挂钩以下事件的global.asax方法:

- Application_BeginRequest

- Application_EndRequest

将时间记录在第一位,将其与最后一次的当前时间进行比较 - 如果记录太长则记录下来。你可以从HttpContext.Current获得动作等。