我们有一个MVC应用程序,将由用户生成的错误记录回我们的支持数据库的最佳方法是什么?用户应该只看到“这个错误已经被报道的”错误消息MVC 5 c#将错误报告回数据库
所有的细节应该被写入到数据库
请帮助!
我们有一个MVC应用程序,将由用户生成的错误记录回我们的支持数据库的最佳方法是什么?用户应该只看到“这个错误已经被报道的”错误消息MVC 5 c#将错误报告回数据库
所有的细节应该被写入到数据库
请帮助!
我建议你要么使用Log4Net这样的外部库,要么创建你自己的库类来为你做日志。
还有一个建议是利用在MVC文件中可用的ExceptionFilter
并写入该过滤器的日志记录代码。我建议,因为它不会导致你一次又一次地写代码,它遵循DRY原则。
例子:
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()
{
//.......
}
检查本作的log4net:log4net Tutorial
会发生什么,如果有连接到支持数据库的错误? tbh记录错误的最佳位置是应用程序服务器上的文本文件。 – user1666620
利用记录器...就像log4net将登录到您的数据库 –
@ user1666620小心声称“最佳”的做法。你会发现不同的意见(特别是当日志文件填满文件系统时)。 – Richard