当我们将网站布署到线上之后,为了实时了解网站的运行情况,如是否有错误页面、网站运行速度、是否有攻击等。那么我们就很有必要为网站加上错误与异常记录到日志文件,这样就可以随时查看网站的线上运行情况,另有一个好处是当网站有运行错误页面时,根据错误日志我们可以快速到定位到错误行进行排查原因、解决问题,这个是对于运行在线上而不能调试的网站的一个非常有必要的功能。 
具体实现方法:

在全局文件Global.asax.cs中添加Application_Error的方法。只要当程序有错误时程序就会自动执行该方法,从而记录到错误日志。

void Application_Error(object sender, EventArgs e)
{//在出现未处理的错误时运行的代码Exception ex = Server.GetLastError().GetBaseException();string errorTime = "异常时间:" + DateTime.Now.ToString(); string errorAddress = "异常地址:" + Request.Url.ToString(); string errorInfo = "异常信息:" + ex.Message; string errorSource = "错误源:" + ex.Source; string errorType = "运行类型:" + ex.GetType(); string errorFunction = "异常函数:" + ex.TargetSite; string errorTrace = "堆栈信息:" + ex.StackTrace; Server.ClearError(); System.IO.StreamWriter writer = null; try { lock (this) { //写入日志 string path = string.Empty; path = Server.MapPath("~/ErrorLogs/"); //不存在则创建错误日志文件夹 if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } path +=string.Format(@"\{0}.txt", DateTime.Now.ToString("yyyy-MM-dd")); writer = !File.Exists(path) ? File.CreateText(path) : File.AppendText(path); //判断文件是否存在,如果不存在则创建,存在则添加 writer.WriteLine("用户IP:" + Request.UserHostAddress); writer.WriteLine(errorTime); writer.WriteLine(errorAddress); writer.WriteLine(errorInfo); writer.WriteLine(errorSource); writer.WriteLine(errorType); writer.WriteLine(errorFunction); writer.WriteLine(errorTrace); writer.WriteLine("********************************************************************************************"); } } finally { if (writer != null) { writer.Close(); } } Server.Transfer("~/500webpage.aspx"); //跳转到显示友好错误的页面 }

转载于:https://www.cnblogs.com/huntergu/p/8336899.html

C#错误异常日志记录到文件相关推荐

  1. Log4Net异常日志记录在asp.net mvc3.0的应用

    前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...

  2. 从壹开始前后端分离 [.netCore 不定期更新 ] 三十五║ 完美实现全局异常日志记录...

    缘起 哈喽我是不定期更新的日常,昨天群里小伙伴问到了记录日志,当然,以前我也挖过这个坑,后来一直没有来得及填上,也想着 swagger 一直又有错误信息展示的功能,就迟迟没有添加这个功能,不过昨天夜里 ...

  3. Spring AOP 实现业务和异常日志记录实战

    1 业务需求:今日,公司要求对操作的业务和日志统一做处理,需要把业务表数据相关信息存入日志表中,比如表名,方法名,业务id,操作操作时间modifyTIme等等. 除了在业务主动插入日志数据之外,有个 ...

  4. python 修饰器_python中用修饰器进行异常日志记录

    当脚本中需要进行的的相同的异常操作很多的时候,可以用修饰器来简化代码.比如我需要记录抛出的异常: 在log_exception.py文件中, import functools import loggi ...

  5. ASP.NET Web API 异常日志记录

    如果在 ASP.NET MVC 应用程序中记录异常信息,我们只需要在 Global.asax 的 Application_Error 中添加代码就可以了,比如: public class MvcApp ...

  6. slf4j 记录日志文件_教程:正确的SLF4J日志记录用法以及如何检查它

    slf4j 记录日志文件 SLF4J是一个非常流行的日志记录外观,但是,就像我们使用的所有库一样,我们有可能以错误的方式或至少以一种非最佳方式使用它. 在本教程中,我们将列出常见的日志记录错误以及如何 ...

  7. [转载]针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结

    针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结 汪宇杰 2014-1-11 星期六 02:31 455 Reads 1 Comments 自定义错误页面和异常记录是个很古老的话题了, ...

  8. iOS日志记录和异常捕获

    日志记录 iOS日志记录当前文件的堆栈.类名.函数名.行号及文件路径等信息 NSArray *array = [NSThread callStackSymbols]; NSLog(@"堆栈信 ...

  9. 如何使用SpringBoot AOP 记录操作日志、异常日志?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:咫尺的梦想_w cnblogs.com/wm-dv/ ...

最新文章

  1. 安装、设置与启动MySql5.1.30绿色版的方法
  2. python转cython_Cython安装与使用入门
  3. JFinal整合Shiro(二)
  4. 单链表 操作的18种算法
  5. CSS清除浮动常用方法小结
  6. 库存管理-历史库存和收发存系列-俄罗斯库存报表J3RFLVMOBVED1
  7. 通达OA 新旧两种数据库连接方式
  8. UICollectionView reloadData后cell被隐藏
  9. hadoop fs 运维常用的几个命令
  10. 生意是怎么越做越累的?
  11. Luogu1904 天际线
  12. python按键退出循环_Python的for循环退出
  13. linux sdcc stc12c5a60s2,STC12C5A60S2单片机最小系统板20个参考例程分享
  14. 【Web技术】1352- 如何防止他人恶意调试你的web程序
  15. sublimetext的文件编码理解reopen/reload with encoding,set encoding,save with encoding, set file encoding to
  16. 2020.8.13 京东Android开发二面
  17. 精心打造中国第一个商用3G网络
  18. 企鹅号15种赚钱方法?企鹅如何快速收益?
  19. 收藏本站与设为首页javascript代码
  20. 字符串编辑距离之Damerau–Levenshtein Distance

热门文章

  1. Manifold learning-based methods for analyzing single-cell RNA-sequencing data
  2. 微信小程序模板消息群发解决思路
  3. 【C++对象模型】第一章 关于对象
  4. 博客园山寨版(asp.net mvc 开源)
  5. org.springframework.dao.InvalidDataAccessApiUsageException
  6. C#面试题 之 判断质数
  7. DataTemplate和ControlTemplate的关系
  8. 为WebBrowser的WEB页的Document注册事件的问题
  9. hive之分区表详解
  10. 计算机快捷键m是什么,教程方法;m、ac快捷键电脑技巧-琪琪词资源网