引言

对于已经部署的系统一旦出错对于我们开发人员来说是比较痛苦的事情,因为我们不能跟踪到错误信息,不能

很快的定位到我们的错误位置在哪,这时候如果能像开发环境一样记录一些堆栈信息就可以了,这时候我们就需要将

错误信息捕捉到然后输出到一个我们可以看到的地方就可以了,这时候我们比较简单的做法就是将一些错误信息输出

到txt文本中。下面就和大家分享一个记录日志的工具类。

效果展示:

类代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Configuration;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Web;
  7. namespace GetLog
  8. {
  9. public class WriteLog
  10. {
  11. private static StreamWriter streamWriter; //写文件
  12. public static void WriteError(string message)
  13. {
  14. try
  15. {
  16. //DateTime dt = new DateTime();
  17. string directPath = ConfigurationManager.AppSettings["LogFilePath"].ToString().Trim();    //在获得文件夹路径
  18. if (!Directory.Exists(directPath))   //判断文件夹是否存在,如果不存在则创建
  19. {
  20. Directory.CreateDirectory(directPath);
  21. }
  22. directPath += string.Format(@"\{0}.log", DateTime.Now.ToString("yyyy-MM-dd"));
  23. if (streamWriter == null)
  24. {
  25. streamWriter = !File.Exists(directPath) ? File.CreateText(directPath) : File.AppendText(directPath);    //判断文件是否存在如果不存在则创建,如果存在则添加。
  26. }
  27. streamWriter.WriteLine("***********************************************************************");
  28. streamWriter.WriteLine(DateTime.Now.ToString("HH:mm:ss"));
  29. streamWriter.WriteLine("输出信息:错误信息");
  30. if (message != null)
  31. {
  32. streamWriter.WriteLine("异常信息:\r\n" + message);
  33. }
  34. }
  35. finally
  36. {
  37. if (streamWriter != null)
  38. {
  39. streamWriter.Flush();
  40. streamWriter.Dispose();
  41. streamWriter = null;
  42. }
  43. }
  44. }
  45. }
  46. }
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Web; namespace GetLog
{
public class WriteLog
{
private static StreamWriter streamWriter; //写文件 public static void WriteError(string message)
{
try
{
//DateTime dt = new DateTime();
string directPath = ConfigurationManager.AppSettings["LogFilePath"].ToString().Trim(); //在获得文件夹路径
if (!Directory.Exists(directPath)) //判断文件夹是否存在,如果不存在则创建
{
Directory.CreateDirectory(directPath);
}
directPath += string.Format(@"\{0}.log", DateTime.Now.ToString("yyyy-MM-dd"));
if (streamWriter == null)
{
streamWriter = !File.Exists(directPath) ? File.CreateText(directPath) : File.AppendText(directPath); //判断文件是否存在如果不存在则创建,如果存在则添加。
}
streamWriter.WriteLine("***********************************************************************");
streamWriter.WriteLine(DateTime.Now.ToString("HH:mm:ss"));
streamWriter.WriteLine("输出信息:错误信息");
if (message != null)
{
streamWriter.WriteLine("异常信息:\r\n" + message);
}
}
finally
{
if (streamWriter != null)
{
streamWriter.Flush();
streamWriter.Dispose();
streamWriter = null;
}
}
}
}
}

配置文件:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <startup>
  4. <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  5. </startup>
  6. <appSettings>
  7. <!-- 系统日志保存路径-->
  8. <add key="LogFilePath" value="D://ErrorLog" />
  9. </appSettings>
  10. </configuration>
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<appSettings>
<!-- 系统日志保存路径-->
<add key="LogFilePath" value="D://ErrorLog" /> </appSettings>
</configuration>

调用代码:

  1. static void Main(string[] args)
  2. {
  3. try
  4. {
  5. var i = 0;
  6. var j = 1 / i;
  7. }
  8. catch (Exception ex)
  9. {
  10. WriteLog.WriteError(ex.ToString());
  11. throw;
  12. }
  13. }
static void Main(string[] args)
{
try
{
var i = 0;
var j = 1 / i;
}
catch (Exception ex)
{
WriteLog.WriteError(ex.ToString());
throw;
}
}

小结

上面就是我们一个简单实用的错误日志记录类,在此分享给大家希望能给各位提供帮助!

将错误日志记录在txt文本里的更多相关文章

  1. 点滴积累【C#】---错误日志记录到txt文本里。

    效果: 描述:将系统中的错误信息,try catch到日志里面. 代码: [后端代码] using System; using System.Collections.Generic; using Sy ...

  2. PHP错误日志记录:display_errors与log_errors的区别

    我们所做的东西,无论在开发环境还是在生产环境都可能会出现一些问题. 开发环境下,我们会要求错误尽可能详细的呈现出来,错误提示信息越详细越好,越详细越能帮助开发人员确定问题所在并从根本上解决他们. 生产 ...

  3. .Net Core中间件和过滤器实现错误日志记录

    1.中间件的概念 ASP.NET Core的处理流程是一个管道,中间件是组装到应用程序管道中用来处理请求和响应的组件. 每个中间件可以: 选择是否将请求传递给管道中的下一个组件. 可以在调用管道中的下 ...

  4. .net错误日志记录(log4)

    Log4 web.config <!--这段放前面--> <configSections> <section name="log4net" type= ...

  5. 利用Image对象,建立Javascript前台错误日志记录

    手记:摘自Javascript高级程序设计(第三版),利用Image对象发送请求,确实有很多优点,有时候这也许就是一个创意点,再次做个笔记供自己和大家参考. 原文: 开发 Web 应用程序过程中的一种 ...

  6. wpf 全局异常捕捉+错误日志记录+自动创建桌面图标

    /// /// 创建桌面图标 /// public static void CreateShortcutOnDesktop(string LnkName) { String shortcutPath ...

  7. asp.net Web项目中使用Log4Net进行错误日志记录

      使用log4net可以很方便地为应用添加日志功能.应用Log4net,开发者可以很精确地控制日志信息的输出,减少了多余信息,提高了日志记录性能.同时,通过外部配置文件,用户可以不用重新编译程序就能 ...

  8. PHP错误日志记录文件位置确定

    1.确定web服务器 ( IIS, APACHE, NGINX 等) 以哪一种方式支持PHP,通常是有下面2种方式 通过模块加载的方式, 适用于apache 通过 CGI/fastCGI 模式, 该模 ...

  9. python错误日志记录工具,解决项目排错问题

    我们写项目的时候难免会遇到代码报错的问题,遇到这样的问题了如何快速的定位问题并解决问题呢? 我今天来整理了利用python只带的工具来解决这个问题,我能需要使用的库有: logging os 这些都是 ...

随机推荐

  1. Haproxy均衡负载部署和配置文件详解

    HAproxy均衡负载部署和配置文件详解 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.根据官方数据,其最高极限支持10G ...

  2. java开发--反射技术

    学习目标: 1.什么是反射:即反射的定义, 2.反射有什么作用,能解决什么问题, 3.反射的知识点是什么, 4.反射的利弊 5.反射的例子 1.什么是反射:反射的定义: a) 能够分析类能力的程序被称 ...

  3. iOS开发--动画(Animation)总结

    UIView的,翻转.旋转,偏移,翻页,缩放,取反的动画效果   翻转的动画 //开始动画 [UIView beginAnimations:@"doflip" context:ni ...

  4. SWD应用接口

    随着ARM公司对Cortex系列的推出,采样SWD方式调试成了大家的首选.SWD不仅速度可以与JTAG媲美,而且使用的调试线少得多.很多人在采样SWD方式进行调试时,一般都是采用4线: ① VCC   ...

  5. Jenkins Master/Slave架构

    原文:http://www.cnblogs.com/itech/archive/2011/11/11/2245849.html 一 Jenkins Master/Slave架构 Master/Slav ...

  6. 在windows上配置jdk环境

    下载和安装的java jdk的步骤此处就忽略了.就从配置jdk配置开始说起: 安装完JDK后配置环境变量  计算机→属性→高级系统设置→高级→环境变量 系统变量→新建 JAVA_HOME 变量 . 变 ...

  7. iReport —— A4打印,只占纸张的一半,如何解决

    有没有遇到过这样的情况:用 iReport 生成的 pdf 文件在预览是好像挺好,但打印时却只占了A4 纸的一半(或许有其他情况,反正是不能占满纸张)? 新建报表时,默认的就是A4尺寸. 经过反复试验 ...

  8. 利用SOLR搭建企业搜索平台 之——模式配置Schema.xml

    来源:http://blog.csdn.net/awj3584/article/details/16963525 schema.xml这个配置文件可以在你下载solr包的安装解压目录的\solr\ex ...

  9. POJ-3669 Meteor Shower(bfs)

    http://poj.org/problem?id=3669 注意理解题意:有m颗行星将会落在方格中(第一象限),第i颗行星在ti时间会摧毁(xi,yi)这个点和四周相邻的点,一个人开始在原点,然后只 ...

  10. 【HDOJ】3901 Wildcard

    1. 题目描述有两个长度为$10^5$的字符串,其中一个仅包含小写字母,称之为源串:另一个包含?与*通配符的模式串,并且通配符的个数不超过10.求模式串是否能匹配源串? 2. 基本思路这其实是一道Re ...