zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    真正的e时代
    在线手册
    UVA 10616 Divisible Group Sums
    UVA 10721 Bar Codes
    UVA 10205 Stack 'em Up
    UVA 10247 Complete Tree Labeling
    UVA 10081 Tight Words
    UVA 11125 Arrange Some Marbles
    UVA 10128 Queue
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/EasonJim/p/5839599.html
Copyright © 2011-2022 走看看