asp.net生产环境和开发环境的错误日志包装策略

Posted Jim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net生产环境和开发环境的错误日志包装策略相关的知识,希望对你有一定的参考价值。

对于错误日志的输出,我们借助web.config的两个标志位:

<!--全局包装异常处理页面,只有在PageError和Application_Error做清除错误操作才可不跳转-->
<!--调试时请设置成Off,生产环境此项必须为On-->
<customErrors mode="Off" defaultRedirect="~/ErrorPage/404/index.html">
  <error statusCode="404" redirect="~/ErrorPage/404/index.html"/>
</customErrors>
<!--调试时请设置成true,生产环境此项必须为false-->
<compilation debug="true" targetFramework="4.0">

其中,我重写三个事件:后台页面的基类重写的【PageError】、前台MVC的基类重写的【ControllerException(此事件为自定义名称,参考MVC的错误重写)】、全局Global的【Application_Error】,然后遵循以下原则:

1、【Application_Error】:

①用于前台错误提示策略,非debug模式,开启了默认错误跳转页面,全部只记录堆栈到数据库,不包装跳转,使用默认错误跳转页面

②非debug模式下,只有是localhost访问站点时才显示堆栈

③非debug模式下,没有开启默认错误跳转,直接输出包装的异常信息

2、【ControllerException】:

①MVC前台错误提示策略,非debug模式,开启了默认错误跳转页面,全部只记录堆栈到数据库,不包装跳转,使用默认错误跳转页面

②非debug模式下,只有是localhost访问站点时才显示堆栈

③非debug模式下,没有开启默认错误跳转,直接输出包装的异常信息

3、【PageError】:

①后台错误提示策略,非debug模式,全部记录堆栈到数据库,并包装跳转

②非debug模式下,只有是localhost访问站点时才显示堆栈

附件:

错误页面模板:https://github.com/easonjim/3_web_example/tree/master/htmlpage

以上是关于asp.net生产环境和开发环境的错误日志包装策略的主要内容,如果未能解决你的问题,请参考以下文章

如何在生产和开发环境中始终如一地获得 ASP.NET 5 DNX 项目的应用程序基础路径?

如何在生产环境中设置 ASP.NET 5 环境变量

在生产环境中分析正在运行的 ASP.NET 应用程序

银联支付 Asp.Net 对接开发内容简介

Asp.Net Core Log4Net 配置分多个文件记录日志(不同日志级别)

如何在ASP.Net Core的生产环境中保护swagger ui