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#将异常信息添加到日志的更多相关文章

  1. asp.net core全局异常过滤并监控系统BUG将异常信息记录到日志

    添加: using Dw.Util.Helper; using Microsoft.AspNetCore.Mvc.Filters; using System; using System.Collect ...

  2. .Net捕获网站异常信息记录操作日志

    第一步:在Global.asax文件下的Application_Error()中写入操作日志 /// <summary> /// 整个网站出现异常信息,都会执行此方法 /// </s ...

  3. Log4Net在MVC下的配置以及运用线程队列记录异常信息

    Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...

  4. c#.NET中日志信息写入Windows日志中解决方案

    1. 目的应用系统的开发和维护离不开日志系统,选择一个功能强大的日志系统解决方案是应用系统开发过程中很重要的一部分.在.net环境下的日志系统解决方案有许多种,log4net是其中的佼佼者.在Wind ...

  5. PHP 错误与异常 笔记与总结(14 )记录和发送异常信息

    当发生异常时,把异常信息记录到日志文件中: <?php header('content-type:text/html; charset=utf-8'); class LogException e ...

  6. .NetCore中使用ExceptionLess 添加操作日志

    上一篇文章已经扩展了日志,下面我们在结合下处理操作日志 通常我们想到操作日志 可能想到的参数可能有 模块 方法 参数内容 操作人 操作时间 操作 Ip 下面我们就来结合这些信息添加操作日志 如果要在代 ...

  7. C#添加错误日志信息

    错误日志是软件用来记录运行时出错信息的文本文件.编程人员和维护人员等可以利用错误日志对系统进行调试和维护. 系统日志 系统日志包含了由Windows系统组件记录的事件.例如,在启动期间装入驱动程序或其 ...

  8. 在日志中记录Java异常信息的正确姿势

    遇到的问题 今天遇到一个线上的BUG,在执行表单提交时失败,但是从程序日志中看不到任何异常信息. 在Review源代码时发现,当catch到异常时只是输出了e.getMessage(),如下所示: l ...

  9. Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息

    Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息 1.1. 异常的处理模式exit  continue undo模式 1 1.2. 捕获所有异常使用        DECLARE ...

随机推荐

  1. JMeter5.1开发SMTP协议接口脚本

    jmeter可以测试发邮件和读取邮件. 发送邮件 上图部分解释: Server:邮件发送服务 Port:发邮件端口,不加密25,加密465,如果是465端口,Security settings 需要选 ...

  2. Spring AOP技术本质认识

    Spring AOP技术本质认识 一.AOP简介   AOP(Aspect Oriented Programming,面向切面编程),把某一类问题集中在一个地方进行处理,比如处理程序中的点击事件.打印 ...

  3. 第六章深入python的set和dict

    1.collections中的abc MutableMapping是Mapping的子类 Mapping是Collection的子类 Collection是Sized,Iterable,Contain ...

  4. 浅谈C/C++回调函数(Callback)& 函数指针

    摘要:回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是 ...

  5. some 模板

    注:此博客部分模板(也有可能是全部)来源于其它大佬的bolg 1.高精度 #include<bits/stdc++.h> #define MAXN 501 ; ; inline ; : ; ...

  6. 【LG5504】[JSOI2011]柠檬

    [LG5504][JSOI2011]柠檬 题面 洛谷 题解 考虑\(dp\),令\(f_i\)表示\(dp\)到第\(i\)位且在第\(i\)位分段的最大值. 我们令题面中的\(s_i\)为\(a_i ...

  7. 使用Java将搜狗词库文件(文件后缀为.scel)转为.txt文件

    要做一个根据词库进行筛选主要词汇的功能,去搜狗下载专业词汇词库时,发现是.scel文件,且通过转换工具(http://tools.bugscaner.com/sceltotxt/)转换为txt时报错如 ...

  8. laravel代码规范强制检查

    目录 介绍 代码规范检查与修复 在git commit时自动检查代码规范 后记 介绍 在团队协作开发中,代码规范是必要的.以前的规范都是自己定,然后手动检查,很难做到有效的约束. 现代的PHP,则有得 ...

  9. 20190802_Nginx基础

    20190802_Nginx基础 文章主要内容: 关于中间件比较通俗易懂的解释 Nginx简述 Nginx环境配置以及安装 Nginx的目录和配置语法 Nginx日志_log_format Nginx ...

  10. centos7 安装hadoop2.7.6(分布式)

    本文只做简单介绍,具体步骤操作请参考centos6.5 安装hadoop1.2.1亲测版 本篇只简单介绍安装步骤 1.安装目录 /usr/local/hadoop (HADOOP_HOME) 2,创建 ...