在 C# 控制台中记录异常日志并输出
最近做了一个小程序,要求在控制台中记录程序运行的异常并输出到指定的文件夹中,以下是我的具体的程序代码:
public static void ErrorLog(Exception ex)
{
string FilePath = "/ErrorLog.txt"; StringBuilder msg = new StringBuilder ();
msg.Append("*************************************** \n");
msg.AppendFormat(" 异常发生时间: {0} \n",DateTime.Now);
msg.AppendFormat(" 异常类型: {0} \n",ex.HResult);
msg.AppendFormat(" 导致当前异常的 Exception 实例: {0} \n",ex.InnerException);
msg.AppendFormat(" 导致异常的应用程序或对象的名称: {0} \n",ex.Source);
msg.AppendFormat(" 引发异常的方法: {0} \n",ex.TargetSite);
msg.AppendFormat(" 异常堆栈信息: {0} \n",ex.StackTrace);
msg.AppendFormat(" 异常消息: {0} \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)
{
Console.ReadKey();
} }
使用这个异常日志记录方法 ,在程序可能出现异常的地方用 try ... catch 块来包装, 并在 catch 块中 调用这个异常的方法,将异常日志记录下来, 在使用 TextWrite 对象时,在最后一定要记得手动关闭, 否则会造成意想不到的错误,特别是内存泄露。
异常记录的效果如下:

在 C# 控制台中记录异常日志并输出的更多相关文章
- MVC4.0 利用HandleErrorAttribute和log4net实现记录异常日志功能
1.MVC4.0中HandleErrorAttribte已经帮我们处理了异常问题,当我们新建一个非空的MVC项目时候,在FilterConfig中会发现这样的代码 public class Filte ...
- MVC中使用过滤器记录异常日志
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Filte ...
- 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页
本篇体验在ASP.NET MVC 4中使用Log4Net记录日志. 通过NuGet安装Log4Net. 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信息. 大致的思路是: ...
- Oracle存储过程记录异常日志
一般我们会将一些涉及到数据库的定时任务直接用存储过程搞定,省去了后端代码的开发.部署,简单.快速,但这种方式存在一个弊端——当存储过程执行出错了,我们无法感知.解决办法也简单,学代码那样去捕获异常.打 ...
- spring boot 在IDEA控制台中打印彩色日志
只需要在application.properties中加入 spring.output.ansi.enabled=ALWAYS 即可
- 使用SpringBoot AOP 记录操作日志、异常日志
平时我们在做项目时经常需要对一些重要功能操作记录日志,方便以后跟踪是谁在操作此功能:我们在操作某些功能时也有可能会发生异常,但是每次发生异常要定位原因我们都要到服务器去查询日志才能找到,而且也不能对发 ...
- ASP.NET全局错误处理和异常日志记录以及IIS配置自定义错误页面
应用场景和使用目的 很多时候,我们在访问页面的时候,由于程序异常.系统崩溃会导致出现黄页.在通常的情况下,黄页对于我们来说,帮助是极大的,因为它可以帮助我们知道问题根源,甚至是哪一行代码出现了错误.但 ...
- IOS异常日志记录与展现功能
在平常的APP开发过程中经常碰到程序遇到异常闪退的问题,通过日志可以把相关的详细错误信息进行记录,本实例要记录不管在哪个页面出错都要进行记录,这边使用到的日志记录插件CocoaLumberjack,以 ...
- SpringSecurity权限管理系统实战—八、AOP 记录用户、异常日志
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
随机推荐
- hibernate 大对象映射
1. 在pojo类中 用Blob类和Clob public class Student { private int id; private String name; private int age; ...
- SparkSQL的解析详解
SparkSQL继承自Hive的接口,由于hive是基于MapReduce进行计算的,在计算过程中大量的中间数据要落地于磁盘,从而消耗了大量的I/O,降低了运行的效率,从而基于内存运算的SparkSQ ...
- PLSQL_性能优化工具系列10_Automatic Database Diagnostic Monitor - ADDM
2014-09-06 Created By BaoXinjian
- OAF_架构MVC系列4 - Control的概述(概念)
2014-06-18 Created By BaoXinjian
- 深入Java集合学习系列:HashMap的实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变 ...
- android 基本知识
307966990 lyd@itcast.com 13716040037 李印东 东东 通信技术: 1G 模拟制式 语音通话. 2G GSM, CDMA 收发短信和邮件. 2.5G GPRS, EDG ...
- tcpdump命令--实用篇
//查看本机与mysql的操作命令 注意 -i any表示监听所有网络接口,我们也根据自身情况选择网络接口 #tcpdump -i any -w - dst port 3306 |strings // ...
- linux 挂载(转载)
From:http://forum.ubuntu.org.cn/viewtopic.php?t=257333 用linux,就一定要用linux的方式去思维.嗯,说的容易做起来难.我的D盘哪去了?恐怕 ...
- Java多线程之DaemonThreadFactory
通过DaemonThreadFactory创建后台线程池 另外:如果是后台线程创建的线程,将都是后台线程. package wzh.daemon; import java.util.concurren ...
- ListView的position的保持
需求场景: 一个ListView页面,滑动阅读到某一位置,然后退出页面,下次再进入页面的时候,想要直接滑动到上次阅读的位置. 方案1: 页面退出的时候,ListView.getFirstVisible ...