c#实现程序单例日志输出功能

  

对于一个完整的程序系统,一个日志记录是必不可少的。可以用它来记录程序在运行过程中的运行状态和报错信息。比如,那些不想通过弹框提示的错误,程序执行过程中捕获的异常等。

  

首先,在你的解决方案中,适当的目录中新建一个类,比如LogManager:

  

编写如下代码:

  

     ///& lt; summary>///日志管理///& lt;/summary>   公开课LogManager   {   私人字符串_logDir;//日志文件存放目录      私有静态LogManager m_LogInstance;//静态单例对象//静态构造函数   静态LogManager ()   {   m_LogInstance=new LogManager ();   }//私有构造函数(必备函数,不允许外部对该类进行实例化)   私人LogManager ()   {   _logDir=环境。CurrentDirectory +“\ \ Log”;   this.DelOldFile ();   }///& lt; summary>///属性获取单例对象///& lt;/summary>   公共静态LogManager LogInstance   {   {回报m_LogInstance;}   }///& lt; summary>///写入一条日志记录///& lt;/summary>///& lt;参数name=芭谅甯瘛痹谌罩炯锹寄谌? lt;/param>   公共空间WriteLog普罗格(字符串)   {   锁(this._logDir)//排它锁:防止主程序中出现多线程同时访问同一个文件出的错   {//根据时间创建一个日志文件   var vDT=DateTime.Now;   字符串vLogFile=string.Format (“{0} \ \ Log {1} {2} {3} . Log”, _logDir, vDT.Year, vDT.Month, vDT.Day);//创建文件流,用于写入   使用(fs=new FileStream文件流(vLogFile FileMode.Append))   {   StreamWriter sw=new StreamWriter (fs);   西南。WriteLine(“{0}祝辞祝辞{1}”,vDT。ToString (yyyy-MM-dd HH: mm: ss),帕洛格);   sw.Flush ();   sw.Close ();   fs.Close ();   }   }   }//删除过期文件   私人空间DelOldFile ()   {//遍历指定文件夹下所有子文件,将一定期限前的日志文件删除。   如果(! Directory.Exists (this._logDir))   {//如果文件夹目录不存在   Directory.CreateDirectory (this._logDir);   返回;   }      var vFiles=(新DirectoryInfo (this._logDir)) .GetFiles ();   for (int i=vFiles。长度- 1;我在=0;我——)   {//指定条件,然后删除   如果(vFiles[我].Name.Contains(“日志”))   {   如果(DateTime。现在,vFiles[我].LastWriteTime)。天比;7)   {   vFiles[我]delete ();   }   }   }   }      }//结束类      之前      

其中,第8行——第26行是关于实现单例模式的一种方法。这样,在你程序的需要位置执行:

  

LogManager.LogInstance.WriteLog(“产生了一条日志记录”);

  

就会在指定文件中参数一条日志记录了。

  

即:2016-11-23 23:53:45 在祝辞,产生了一条日志记录

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

c#实现程序单例日志输出功能