1

我目前向用户显示自定义样式的错误消息,这是我在这篇文章之后构建的。这工作正常,但我想知道我应该如何在日志文件中实际记录这些错误。目前我们已经实现了 log4net 进行日志记录。

这是我的模板:

@model System.Web.Mvc.HandleErrorInfo

<div class="span3"></div>
<div class="span5">
    <div class="well">
        <h3>Oops!</h3>
        <div class="alert alert-info alert-block">
            <strong>An error has occurred</strong>
            <p>
                We have logged the incident for you.
            Should it continue to occur, please contact support via one of the following options
            </p>
            <br />
            <p class="pull-right"><a href="mailto:support@company.com">support@company.com</a></p>
            <address>
                <strong>Company Inc.</strong><br>
                Address 3<br>
                0055 Somewhere, Country<br>
                <abbr title="Phone">P:</abbr>
                +47 999 99 999
            </address>
        </div>

        <div class="alert alert-error alert-block">
            <strong>Exception details (@Model.ControllerName / @Model.ActionName)</strong>
            <p>
                @Model.Exception.Message
            </p>
        </div>
    </div>
</div>

网络配置:

<customErrors mode="On">
  <error statusCode="404" redirect="~/Error404/Index" />
</customErrors>

请注意,Error404 视图有自己的控制器并驻留在自己的视图文件夹中,而我的 Error.cshtml 视图没有 - 它与我的布局一起驻留在共享文件夹中。任何帮助,将不胜感激 :)

4

1 回答 1

1

看看ELMAH

我会说继续使用 log4net 进行记录。已经有 log4net 附加程序将记录到文件或数据库。这里唯一的问题是,要记录它,你必须知道它发生了。

如果您将 ELMAH 添加到您的项目中,它将捕获任何未处理的异常并将这些异常记录到文件/db/email/无论您配置什么。

该项目具有易于集成的 nuget 包。我不能说太多,我在我编写的每个 Web 项目中都使用它。

于 2013-08-28T11:56:27.020 回答