C#将异常信息添加到日志
C#将程序抛出的异常信息添加到错误日志
错误日志是软件用来记录运行时出错信息的文本文件。编程人员和维护人员等可以利用错误日志对系统进行调试和维护。
为程序添加错误日志的好处是当程序有运行错误时,根据错误日志我们可以快速定位到错误,排查原因、解决问题,这是对于运行在线上而不能调试的网站的一个非常有必要的功能。
using System;
using System.IO;
using System.Text; namespace TestService
{
public class ErrorLog
{
public static void ErrorLogTxt(Exception ex)
{
//获取文件路径(相对于程序的基目录路径)
string FilePath = AppDomain.CurrentDomain.BaseDirectory + "/File/ErrorLog.txt"; StringBuilder msg = new StringBuilder();
msg.Append("*************************************** \r\n");
msg.AppendFormat(" 异常发生时间: {0} \r\n", DateTime.Now);
msg.AppendFormat(" 异常类型: {0} \r\n", ex.HResult);
msg.AppendFormat(" 导致当前异常的 Exception 实例: {0} \r\n", ex.InnerException);
msg.AppendFormat(" 导致异常的应用程序或对象的名称: {0} \r\n", ex.Source);
msg.AppendFormat(" 引发异常的方法: {0} \r\n", ex.TargetSite);
msg.AppendFormat(" 异常堆栈信息: {0} \r\n", ex.StackTrace);
msg.AppendFormat(" 异常消息: {0} \r\n", ex.Message);
msg.Append("***************************************"); try
{
if (File.Exists(FilePath))//如果文件存在
{
//写异常信息写入文件
using (StreamWriter tw = File.AppendText(FilePath))
{
tw.WriteLine(msg.ToString());
}
}
else
{
//如果文件不存在则创建后将异常信息写入
TextWriter tw = new StreamWriter(FilePath);
tw.WriteLine(msg.ToString());
tw.Flush();//将缓冲区的数据强制输出,清空缓冲区
tw.Close();//关闭数据流
tw = null;
}
}
catch (Exception exx)
{
Console.ReadKey();
} }
}
}
在使用 TextWrite 对象时,在最后一定要记得手动关闭,否则会造成意想不到的错误,特别是内存泄露。
使用异常日志记录方法 ,在程序可能出现异常的地方用 try ... catch 块来包装,在 catch 块中调用这个异常的方法,将异常日志记录下来
public LoginResult RegistSend(MainInfoResult model, string uver)
2 {
3 try
4 {
Sends(model.UEmail, "注册账号", uver);
result.Status = ResultStatus.Success;
result.Message = "验证码已发送至您的邮箱!";
}
catch (Exception ex)
{
ErrorLog.ErrorLogTxt(ex);//调用错误日志类
result.Status = ResultStatus.Fail;
result.Message = ex.Message;
}
return result;
16 }
日志记录效果:

End!
C#将异常信息添加到日志的更多相关文章
- asp.net core全局异常过滤并监控系统BUG将异常信息记录到日志
添加: using Dw.Util.Helper; using Microsoft.AspNetCore.Mvc.Filters; using System; using System.Collect ...
- .Net捕获网站异常信息记录操作日志
第一步:在Global.asax文件下的Application_Error()中写入操作日志 /// <summary> /// 整个网站出现异常信息,都会执行此方法 /// </s ...
- Log4Net在MVC下的配置以及运用线程队列记录异常信息
Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...
- c#.NET中日志信息写入Windows日志中解决方案
1. 目的应用系统的开发和维护离不开日志系统,选择一个功能强大的日志系统解决方案是应用系统开发过程中很重要的一部分.在.net环境下的日志系统解决方案有许多种,log4net是其中的佼佼者.在Wind ...
- PHP 错误与异常 笔记与总结(14 )记录和发送异常信息
当发生异常时,把异常信息记录到日志文件中: <?php header('content-type:text/html; charset=utf-8'); class LogException e ...
- .NetCore中使用ExceptionLess 添加操作日志
上一篇文章已经扩展了日志,下面我们在结合下处理操作日志 通常我们想到操作日志 可能想到的参数可能有 模块 方法 参数内容 操作人 操作时间 操作 Ip 下面我们就来结合这些信息添加操作日志 如果要在代 ...
- C#添加错误日志信息
错误日志是软件用来记录运行时出错信息的文本文件.编程人员和维护人员等可以利用错误日志对系统进行调试和维护. 系统日志 系统日志包含了由Windows系统组件记录的事件.例如,在启动期间装入驱动程序或其 ...
- 在日志中记录Java异常信息的正确姿势
遇到的问题 今天遇到一个线上的BUG,在执行表单提交时失败,但是从程序日志中看不到任何异常信息. 在Review源代码时发现,当catch到异常时只是输出了e.getMessage(),如下所示: l ...
- Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息
Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息 1.1. 异常的处理模式exit continue undo模式 1 1.2. 捕获所有异常使用 DECLARE ...
随机推荐
- zookeper分布式搭建
zookeper的安装如下链接 https://www.cnblogs.com/wanerhu/p/11144815.html
- HTTP协议之chunk,单页应用这样的动态页面,怎么获取Content-Length的办法
当客户端向服务器请求一个静态页面或者一张图片时,服务器可以很清楚的知道内容大小,然后通过Content-Length消息首部字段告诉客户端需要接收多少数据.但是如果是动态页面等时,服务器是不可能预先知 ...
- 新版Notepad++加十六进制查看的插件HexEditor(转载+总结)
用到hex文件查看,老版本的notepad++是可以安装的,新版本的是安装不了,这个差评啊, 但是网上有方法:https://github.com/chcg/NPP_HexEdit/releases下 ...
- 树莓派项目(1-2)人脸识别 C++
级联分类器 在这里,我们学习如何使用objdetect在我们的图像或视频中查找对象 https://docs.opencv.org/3.3.0/db/d28/tutorial_cascade_clas ...
- 攻防世界(Ctf-Web 新手练习区)
题目:view_source 在url的前面加上个 “view-source: ”就看到flag了,或者“CTRL+U”快捷键查看源码 flag:cyberpeace{e07dcafaeeb31df2 ...
- git crate&query&delete tag(九)
root@vmuer-VirtualBox:/opt/myProject# git log --pretty=oneline0169b7a1c4bccb47e76711f353fd8d3864bde9 ...
- 分布式环境配置虚拟域名,phpstudy配置虚拟域名,集成环境配置域名,域名禁止访问forbidden怎么解决
重启Apache,测试:
- MongoDB的安装与简单使用
一.安装MongoDB的步骤 注:本教程全部统一采用hadoop用户名登录Linux系统,用户名:hadoop 密码:hadoop 首先,在Linux系统中打开一个终端,执行如下命令导入公共秘钥到 ...
- zy的日志报表执行有问题。crontab显示执行了任务,代码中应该有问题
crontab定时任务在日志记录中是执行了 但是在执行脚本的过程中报错了, 找不到问题原因,以后也要在脚本中加入日志记录, 但是奇怪的是在中午和晚上是正常的, 应该是那个时间段的判断逻辑有问题,导致程 ...
- Linux性能优化实战学习笔记:第六讲1
一.环境准备 1.安装软件包 终端1 机器配置:2 CPU,8GB 内存 预先安装 docker.sysstat.perf等工具 [root@luoahong ~]# docker -v Docker ...