MVC 5 c#将错误报告回数据库
我们有一个MVC应用程序,将(用户产生的)错误记录回支持数据库的最佳方法是什么?用户应只看到“已报告此错误”错误消息 所有细节都应写入数据库MVC 5 c#将错误报告回数据库,c#,asp.net-mvc,error-handling,C#,Asp.net Mvc,Error Handling,我们有一个MVC应用程序,将(用户产生的)错误记录回支持数据库的最佳方法是什么?用户应只看到“已报告此错误”错误消息 所有细节都应写入数据库 请帮忙 我建议您要么使用外部库,如Log4Net,要么创建自己的库类,为您进行日志记录 另一个建议是使用MVC文件中可用的ExceptionFilter,并编写登录该过滤器的代码。我的建议是因为它不会导致您一次又一次地编写代码,因为它遵循的是枯燥的原则 例如: public class CustomExceptionFilter: FilterAttrib
请帮忙 我建议您要么使用外部库,如Log4Net,要么创建自己的库类,为您进行日志记录 另一个建议是使用MVC文件中可用的
ExceptionFilter
,并编写登录该过滤器的代码。我的建议是因为它不会导致您一次又一次地编写代码,因为它遵循的是枯燥的原则
例如:
public class CustomExceptionFilter: FilterAttribute,
IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
if (!filterContext.ExceptionHandled)
{
//log error here
Logger.LogException(filterContext.Exception);
//this will redirect to error page and show use logging is done
filterContext.Result = new
RedirectResult("customErrorPage.html");
filterContext.ExceptionHandled = true;
}
}
}
比你能做的还要多
//Over controller
[CustomExceptionFilter]
public class HomeController:Controller
{
//......
}
//Over the Action
[CustomExceptionFilter]
public ActionResult Index()
{
//.......
}
检查此日志4net:如果连接到支持数据库时出错,会发生什么情况?tbh记录错误的最佳位置是应用程序服务器上的文本文件。使用logger…如log4net,它将记录到您的database@user1666620请小心声称“最佳”实践。您会发现不同的意见(特别是当日志文件填满文件系统时).我认为这应该转移到programmers.stackexchange,因为这不是一个特定的错误,而是一个设计question@richard如果您正处于文件系统充满错误日志的阶段,那么我不认为将它们存储在数据库中会有帮助。