对于一个完整的程序系统,一个日志记录是必不可少的。可以用它来记录程序在运行过程中的运行状态和报错信息。比如,那些不想通过弹框提示的错误,程序执行过程中捕获的异常等。
首先,在你的解决方案中,适当的目录中新建一个类,比如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#实现程序单例日志输出功能