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

  • 相关阅读:
    Git 进阶学习
    My SQL 学习打卡 60天搞定mysql
    设计模式 学习笔记
    docker 从入门到精通
    java 异步线程下的顺序控制
    Maven 工程 如何添加 oracle 驱动 问题
    Hive 2.1.1 学习笔记
    Linux 下 MySQL-5.6.16 安装
    hadoop2.x HDFS HA linux环境搭建
    [LC] 1146. Snapshot Array
  • 原文地址:https://www.cnblogs.com/EasonJim/p/5839599.html
Copyright © 2011-2022 走看看