2009-10-19 53 views
4

我们拥有第一个MVC应用程序,我在那里徘徊着什么特别的考虑。在常规的Web表单应用程序中,我们几乎只是使用try catch块将代码事件封装在页面后面。但是,对于帮助者,控制者,路线等,mvc似乎不那么清楚。我应该在哪里确保记录。如何为Asp.NET MVC应用程序设置log4net

回答

2

通常情况下,您会在您的控制器操作中应用日志记录。您还可以从HandleError属性派生来添加错误日志记录,以及创建自定义操作/结果过滤器来自动化某些类型的日志记录。有了这样的过滤器,您可以将其应用于您的基本控制器,并为所有操作提供一些基本的使用记录/检测。

如果您使用控制器工厂,操作调用程序或模型绑定器自定义框架,那么也可以在其中应用日志记录。当然,关于如何将日志记录应用于实际模型(域对象,外部服务,持久性和数据库,安全性等),这并无什么可说的。

+1

我们通常(在应用程序的WebForm)也都在Global.asax中的Application_Error事件记录。这是否也适用于MVC或是否有更适合处理所有未处理的异常的地方? – 2009-10-19 08:08:11

+1

Application_Error非常适合全面的异常记录。事实上,我更喜欢将子类HandleError,因为它也会记录在线程中运行的代码中的异常,而不直接处理Web请求(例如Application_Start中的代码)。 – 2009-10-19 08:49:59

0

在你的Global.asax.cs文件:

protected void Application_Error(object sender, EventArgs e) 
{ 
    _logger.Error("Unhandled exception", Server.GetLastError()); 
} 
相关问题