引言

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

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

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

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

配置文件:

  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>
  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.  
  10. </appSettings>
  11. </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. }
  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. }

小结

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

将错误日志记录在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. sip比较好的博客

    http://blog.sina.com.cn/s/articlelist_1796220243_1_1.html

  2. 如何搭建配置php开发环境

    PHP的配置 1.打开解压后的C:\Program Files (x86)\php-5.3.5文件夹 1 将php.ini-development文件并更改名称为php.ini(留个备份,好习惯) 2 ...

  3. Qt通过UDP传图片,实现自定义分包和组包

    一.包头结构体 //包头 struct PackageHeader { //包头大小(sizeof(PackageHeader)) unsigned int uTransPackageHdrSize; ...

  4. Java:字符串类String的功能介绍

    在java中,字符串是一个比较常用的类,因为代码中基本上处理的很多数据都是字符串类型的,因此,掌握字符串类的具体用法显得很重要了. 它的主要功能有如下几种:获取.判断.转换.替换.切割.字串的获取.大 ...

  5. Java Map各遍历方式的性能比较

    1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多.理由是:entrySet方法一次拿到所有key和value的集合:而keySet拿到的 ...

  6. stanford-postagger中文词性标注

    安装 系统需要安装Java1.6+ http://nlp.stanford.edu/software/tagger.shtml 下载Download full Stanford Tagger vers ...

  7. 巧用cssText属性批量操作样式

    给一个HTML元素设置css属性,如 1 2 3 4 var head= document.getElementById("head"); head.style.width = & ...

  8. Navicat

    create table <表名>(    <列名> <数据类型及长度> [not null],    <列名> <数据类型及长度>,   ...

  9. 关于Linux系统调用,内核函数【转】

    转自:http://blog.csdn.net/ubuntulover/article/details/5988220 早上听人说到某个程序的一部分是内核态,另一部分是用户态,需要怎么怎么.当时突然想 ...

  10. 利用ExtJS导出Excel

    Ext.ns("Msp.Component"); //config = { // fileName : "净值及头寸核对", // exportDate : & ...