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

  • 相关阅读:
    oracle函数大全-字符串处理函数
    程序员编程的8条小贴士
    对一个对象实体进行赋值
    一个开源.net混淆器——ConfuserEx (收藏)
    (笑话)切,我也是混血儿,我爸是A型血,我妈是B型血!
    VS2010版快捷键
    常用的织梦dedecms安全设置集合整理
    C/C++ 一些常用的运算符
    对某钓鱼网站的一次失败渗透分析
    MS15-020漏洞测试
  • 原文地址:https://www.cnblogs.com/EasonJim/p/5839599.html
Copyright © 2011-2022 走看看