首页 > 代码库 > asp.net生产环境和开发环境的错误日志包装策略

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生产环境和开发环境的错误日志包装策略