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 项目的应用程序基础路径?