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生产环境和开发环境的错误日志包装策略的更多相关文章
- (17/24) webpack实战技巧:生产环境和开发环境并行设置,实现来回切换
1. 概述 生产环境和开发环境所需依赖是不同: --开发依赖:就是开发中用到而发布时用不到的.在package.json里面对应的就是devDependencies下面相关配置. --生产依赖: 就是 ...
- Maven Filter与Profile隔离生产环境与开发环境
Maven Filter与Profile隔离生产环境与开发环境 在不同的开发阶段,我们一般用到不同的环境,开发阶段使用开发环境的一套东西,测试环境使用测试环境的东西,可能有多个测试环境,生产环境使用的 ...
- 【webpack学习笔记】a06-生产环境和开发环境配置
生产环境和开发环境的配置目标不一样,生产环境主要是让文件压缩得更小,更优化资源,改善加载时间. 而开发环境,主要是要开发更方便,更节省时间,比如调试比如自动刷新. 所以可以分开配置不同的开发环境,然后 ...
- 通过Maven配置测试环境和开发环境连接不同的数据库
通过Maven配置测试环境和开发环境连接不同的数据库 作者及来源: 通灵宝玉 - 博客园 收藏到→_→: 此文来自: 马开东博客 网址:http://www.makaidong.com ...
- Android 程序分析环境搭建-开发环境搭建
1.1 JDK 安装 JDK 的配置,初学java 开发,那是必须会的. 下载,遇到的问题就是要注册oracle 的账号,还有你要下载特定版本,比如jdk 1.7,jdk 1.6,很难找到在哪里.解 ...
- spring boot区分生产环境和开发环境
回顾一下spring boot使用基础,做个笔记. 通过配置文件,设置项目的开发环境和生成环境. 项目目录结构: application-dev.yml是开发环境配置文件,application-pr ...
- 配置动态加载模块和js分模块打包,生产环境和开发环境公共常量配置
1. 话不多少 先上代码: route.js // 引用模板 分模块编译 const main = r => require.ensure([], () => r(require('. ...
- asp.net core 2.1开发环境下配置IIS
asp.net core 2.1是可以在开发环境下配置到IIS中的,这样就可以在vs中按F5直接运行了 在项目上右键点击属性,然后在Debug中配置如下参数 首先点击New按钮,输入IIS,点击确定 ...
- springboot 生产环境与开发环境配置
通过修改yml文件里的active属性,prod(生产环境) 与 dev (开发环境)
随机推荐
- 产品需求文档(PRD)的写作方法之笔记一
1.写前准备(思维导图): http://www.woshipm.com/?p=80070 1.在写之前,请先很区分清楚什么是MRD文档(市场需求文档),BRD文档(商业需求文档),什么是PRD文档( ...
- QT 数据库编程四
//vmysql.cpp #include "vmysql.h" #include <QMessageBox> Vmysql::Vmysql() { mysql_ini ...
- 用C++和shell获取本机CPU、网卡IO、内存、磁盘等的基本信息
用C++和shell获取本机CPU.网卡.内存.磁盘等的基本信息: 由于对C++相关的函数没多少了解,但是觉得用shell反而相对简单一些: 一.shell脚本,用来辅助C++获取主机的资源使用信息 ...
- 学习C++.Primer.Plus 8 函数探幽
1. 内联函数 普通函数调用: 存储调用指令的地址->将函数参数复制到堆栈->跳到函数地址执行代码(返回值放到寄存器)->跳回调用指令处 2. 当代码执行时间很短,且会被大量调用的 ...
- hadoop: hdfs API示例
利用hdfs的api,可以实现向hdfs的文件.目录读写,利用这一套API可以设计一个简易的山寨版云盘,见下图: 为了方便操作,将常用的文件读写操作封装了一个工具类: import org.apach ...
- string to char* and char* to string 玩转 String 和 Char*
char 类型是c语言中常见的一个数据类型,string是c++中的一个,它的定义为 Strings are objects that represent sequences of character ...
- logstash搭建日志追踪系统
前言 开始博客之前,首先说下10月份没写博客的原因 = =. 10月份赶上国庆,回了趟老家休息了下,回来后自己工作内容发生了点改变,开始搞一些小架构的东西以及研究一些新鲜东西,当时我听到这个消息真的是 ...
- 采访ServiceStack的项目领导Demis Bellot——第1部分(网摘)
ServiceStack是一个开源的.支持.NET与Mono平台的REST Web Services框架.InfoQ有幸与Demis Bellot深入地讨论了这个项目.在这篇两部分报道的第1部分中,我 ...
- List<T>与Dictionary<string,T>频繁检索的性能差距
一直对LINQ简洁高效的语法青睐有加,对于经常和资料库,SQL语法打交道的C#开发者来说,LINQ无疑是一个非常不错的选择,当要在List<T>(T为一个普通对象)集合中查找满足某些条件的 ...
- Android开发自学笔记(Android Studio1.3.1)—3.Android应用结构解析
一.R文件是什么? 如上图所示,我们可以通过findViewById方法通过传入R.id.show找到我们的TextView元素,findViewById方法也很好理解,从View中通过Id ...