将错误日志记录在txt文本里
引言
对于已经部署的系统一旦出错对于我们开发人员来说是比较痛苦的事情,因为我们不能跟踪到错误信息,不能
很快的定位到我们的错误位置在哪,这时候如果能像开发环境一样记录一些堆栈信息就可以了,这时候我们就需要将
错误信息捕捉到然后输出到一个我们可以看到的地方就可以了,这时候我们比较简单的做法就是将一些错误信息输出
到txt文本中。下面就和大家分享一个记录日志的工具类。
效果展示:
类代码:
- 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;
- }
- }
- }
- }
- }
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; } } } } }
配置文件:
- <?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>
<?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>
调用代码:
- static void Main(string[] args)
- {
- try
- {
- var i = 0;
- var j = 1 / i;
- }
- catch (Exception ex)
- {
- WriteLog.WriteError(ex.ToString());
- throw;
- }
- }
static void Main(string[] args) { try { var i = 0; var j = 1 / i; } catch (Exception ex) { WriteLog.WriteError(ex.ToString()); throw; } }
小结
上面就是我们一个简单实用的错误日志记录类,在此分享给大家希望能给各位提供帮助!