一个简单的自定义程序日志小样例

复制代码 代码如下:

  using System;

  using System.IO;

  using System.Text;

  public class LogInfo

  {

  private string ErrorInfo_User = ""; // 记录用户自定义错误信息

  private string ErrorPosition = ""; // 记录错误的位置信息,可包括类、函数等

  private string ErrorInfo_Sys = ""; // 记录系统产生的异常错误信息

  // 记录日志信息

  public void RecordErrorInfo(string Position, string Error_Sys, string Error_User)

  {

  ErrorPosition = Position;

  ErrorInfo_Sys = Error_Sys;

  ErrorInfo_User = Error_User;

  }

  // 自定义日志信息格式

  private string GetLogContent()

  {

  string LogContent = "\r\n--------------------------------------------------------------------------\r\n";

  LogContent += "[自定义异常日志][" + DateTime.Now.ToString() + "]\r\n";

  LogContent += "=>[Position]=>[" + ErrorPosition + "]\r\n";

  LogContent += "=>[UserInfo]=>[" + ErrorInfo_User + "]\r\n";

  LogContent += "=>[SysInfo]=>[" + ErrorInfo_Sys + "]\r\n";

  LogContent += "--------------------------------------------------------------------------\r\n";

  return LogContent;

  }

  // 保存日志信息到文件

  public void SaveLogToFile()

  {

  try

  {

  // get the file path of the log.

  string FileName = @"log/LogInfo_" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";

  // get the content of the log.

  string LogContent = GetLogContent();

  // create the stream of the log file and save the log.

  FileStream smLog = new FileStream(FileName, FileMode.Append, FileAccess.Write);

  // if the stream is correct.

  if (smLog != null)

  {

  long lFileContentLen = smLog.Length;

  smLog.Lock(0, lFileContentLen);

  byte[] buffer = Encoding.GetEncoding("gb2312").GetBytes(LogContent);

  smLog.Write(buffer, 0, buffer.Length);

  smLog.Unlock(0, lFileContentLen);

  smLog.Flush();

  smLog.Close();

  }

  }

  catch

  { }

  }

  }

  public class LogExample

  {

  private LogInfo _Log = new LogInfo();

  // 某处理函数一

  public void Function_First()

  {

  try

  {

  // do something which could be occur exception.

  }

  catch (Exception error)

  {

  _Log.RecordErrorInfo("函数Function_First", error.Message.ToString(), "执行函数Function_First时,发生异常!");

  _Log.SaveLogToFile();

  }

  }

  // 某处理函数二

  public void Function_Second()

  {

  try

  {

  // do something which could be occur exception.

  }

  catch (Exception error)

  {

  _Log.RecordErrorInfo("函数Function_Second", error.Message.ToString(), "执行函数Function_Second时,发生异常!");

  _Log.SaveLogToFile();

  }

  }

  }

  class Program

  {

  static void Main(string[] args)

  {

  // 创建内建了日志的对象

  LogExample Le = new LogExample();

  // 执行处理操作一

  Le.Function_First();

  // 执行处理操作二

  Le.Function_Second();

  }

  }