我目前向用户显示自定义样式的错误消息,我在this post之后构建了该消息。这工作正常,但我想知道我应该如何在日志文件中记录这些错误。目前我们已经实现了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>
的Web.config:
<customErrors mode="On">
<error statusCode="404" redirect="~/Error404/Index" />
</customErrors>
请注意,Error404视图有自己的控制器并驻留在自己的视图文件夹中,而我的Error.cshtml视图则没有 - 它与我的布局一起驻留在共享文件夹中。任何帮助将不胜感激:)
答案 0 :(得分:1)
看看ELMAH。
我想说继续使用log4net进行日志记录。已有log4net appender将登录到文件或数据库。这里唯一的问题是要记录它,你必须知道它发生了。
如果将ELMAH添加到项目中,它将捕获任何未处理的异常并将其记录到文件/ db / email /无论您配置什么。
这个项目有nuget包,易于集成。我不能说它,我在我写的每个web项目中使用它。