gpt4 book ai didi

asp.net - 如何获取共享 error.cshtml 的异常详细信息

转载 作者:行者123 更新时间:2023-12-02 14:11:25 29 4
gpt4 key购买 nike

我正在使用 ASPNet MVC4,并在 Global.asax 上配置了 HandleErrorAttribute 过滤器

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}

在我的 web.config 上,我已将 customError 模式配置为 RemoteOnly:

<customErrors mode="RemoteOnly" />

因此,当任何 View 上引发异常时,用户都会被重定向到 ~/Shared/Error.cshtml,这样就可以了。

现在,我可以捕获此日志异常:

~/Shared/Error.cshtml代码:

@{
log4net.LogManager
.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
.Fatal("Not captured exception", ex);
}

实际上这段代码工作正常(没有 EX 参数),但我需要改进我的日志,包括异常详细信息。

如何获取此页面上的异常详细信息?

最佳答案

只需将您的 Error.cshtml View 强类型化为 HandleErrorInfo这是通过 HandleErrorAttribute 传递给此 View 的模型:

@model System.Web.Mvc.HandleErrorInfo
@{
log4net
.LogManager
.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
.Fatal("Not captured exception", Model.Exception);
}

顺便说一下,在 View 中登录似乎并不是您能做的最干净的事情。我宁愿编写自定义错误处理程序属性并在那里记录异常。

关于asp.net - 如何获取共享 error.cshtml 的异常详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22100171/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com