对于网站来讲,不能把异常信息显示给用户,异常信息只能记录到日志,出了问题把日志文件发给开发人员,就能知道问题所在。

下面演示网站 出错后自动添加出错日志的实例

(1)新建一个WebApplication

(2)添加对log4net.dll的引用

(3)在Web.Config (或App.Config)添加配置,

<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<!-- Define some output appenders -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="test.txt"/>
<appendToFile value="true"/>
<maxSizeRollBackups value=""/>
<maximumFileSize value="1024KB"/>
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
</configuration>

(4)初始化:在程序最开始加入log4net.Config.XmlConfigurator.Configure();不要加到页面的Load

Global.asax

log4net.Config.XmlConfigurator.Configure();

(5)添加错误过滤器MyHandleExceptionAttribute:HandleErrorAttribute

 public class MyHandleExceptionAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{ base.OnException(filterContext); LogManager.GetLogger(typeof(MyHandleExceptionAttribute)).Debug("被系统过滤捕获的异常" + filterContext.Exception); filterContext.HttpContext.Response.Redirect("/Error.html"); } }

(6)在FilterConfig.cs中注册此过滤器,替换之前的过滤器

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
// filters.Add(new HandleErrorAttribute());
filters.Add(new MyHandleExceptionAttribute());
}

操作完成,这是可以在网页中故意抛出异常,在网站根目录下查看文件test.txt中的出错信息了。

这只是一个log4.net的例子,log4.net还有很多功能,可以保存信息到文件,数据库,还可以定那种消息可邮件等等。

最新文章

  1. monggodb学习系列:1,mongodb入门
  2. Linux开机自动登录(文本模式)
  3. NEFU 561 方块计算
  4. MySql中delimiter的作用是什么?
  5. 关于 hangfire 的权限问题
  6. ubuntu 14.04 与 CentOS 升级GCC/G++至5版本
  7. Castle ActiveRecord简单介绍
  8. 摄像头(5)使用Camera2 替代过时的Camera API
  9. 【转】简单几步让App Store软件下载快如迅雷 -- 不错!!!
  10. poj 2367 Genealogical tree (拓扑排序)
  11. java.util.Map源码分析
  12. 函数:内嵌函数和闭包 - 零基础入门学习Python020
  13. iOS相机去黑框
  14. Telnet服务器和域名系统的端口号 Mac OS X
  15. 统计SQLSERVER表行数,以及每天数据变化的行数
  16. 尝试在Linux上部署Asp.net Core应用程序
  17. Java中list&lt;Object[]&gt;、list&lt;Student&gt;、list&lt;Map&lt;String,String&gt;&gt;排序
  18. mac清除某个端口的占用
  19. 在confluence中出现Handshake failed due to invalid Upgrade header: null
  20. 【BZOJ4298】[ONTAK2015]Bajtocja

热门文章

  1. R语言爬虫:爬取百度百科词条
  2. msys2-x86_64 Mingw64 编译openssl
  3. 优步UBER司机全国各地奖励政策汇总 (4月4日-4月10日)
  4. 北京Uber优步司机奖励政策(1月18日)
  5. ROS(二)Service通信
  6. WSL跑linux服务程序
  7. PS 证件照换颜色
  8. hdu1061Rightmost Digit(快速幂取余)
  9. Qt listwigwt item 加入自定义元素
  10. 监控系统cpu相关统计信息