【发布时间】:2026-02-16 22:20:04
【问题描述】:
我们有第一个 MVC 应用程序,我正在徘徊那里有什么特殊考虑。在常规的 Web 表单应用程序中,我们几乎只是在页面后面的代码中使用 try catch 块包装事件。但就助手、控制器、路由等而言,mvc 似乎不太清楚。我应该在哪里确保有日志记录。
【问题讨论】:
标签: asp.net-mvc logging log4net
我们有第一个 MVC 应用程序,我正在徘徊那里有什么特殊考虑。在常规的 Web 表单应用程序中,我们几乎只是在页面后面的代码中使用 try catch 块包装事件。但就助手、控制器、路由等而言,mvc 似乎不太清楚。我应该在哪里确保有日志记录。
【问题讨论】:
标签: asp.net-mvc logging log4net
通常您会在控制器操作中应用日志记录。您还可以从 HandleError 属性派生以添加错误日志记录,以及创建自定义操作/结果过滤器以自动化某些类型的日志记录。使用这样的过滤器,您可以将其应用于您的基本控制器,并为所有操作提供一些基本的使用记录/工具。
如果您使用控制器工厂、动作调用程序或模型绑定器自定义框架,您也可以在那里应用日志记录。当然,这并没有说明如何将日志记录应用到您的实际模型(域对象、外部服务、持久性和数据库、安全性等)。
【讨论】:
在您的 Global.asax.cs 文件中:
protected void Application_Error(object sender, EventArgs e)
{
_logger.Error("Unhandled exception", Server.GetLastError());
}
【讨论】: