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

  • 相关阅读:
    mysql日志查看
    mysql LAST_INSERT_ID详解
    LR监测windows资源一般监测哪几个项?
    如何在 Linux 服务器上部署多个 Tomcat
    微信支付的JAVA SDK存在漏洞,可导致商家服务器被入侵(绕过支付)XML外部实体注入防护
    Eclipse 处理 IOConsole Updater 报错
    Eclipse 处理 Console 打印信息自动删除
    Linux后台运行java的jar包
    MySQL重置主键ID
    Java转义emoji等特殊符号
  • 原文地址:https://www.cnblogs.com/EasonJim/p/5839599.html
Copyright © 2011-2022 走看看