你的位置:首页 > 软件开发 > ASP.net > C#实现程序单例日志输出

C#实现程序单例日志输出

发布时间:2016-11-24 00:00:14
对于一个完整的程序系统,一个日志记录是必不可少的。可以用它来记录程序在运行过程中的运行状态和报错信息。比如,那些不想通过弹框提示的错误,程序执行过程中捕获的异常等。首先,在你的解决方案中,适当的目录中新建一个类,比如 LogManager:编写如下代码: 1 /// < ...

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

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

编写如下代码:

 1   /// <summary> 2   /// 日志管理 3   /// </summary> 4   public class LogManager 5   { 6     private get='_blank'>string _logDir; // 日志文件存放目录 7  8     private static LogManager m_LogInstance; // 静态单例对象 9     // 静态构造函数10     static LogManager()11     {12       m_LogInstance = new LogManager();13     }14     // 私有构造函数(必备函数,不允许外部对该类进行实例化)15     private LogManager()16     {17       _logDir = Environment.CurrentDirectory + "\\Log";18       this.DelOldFile();19     }20     /// <summary>21     /// 属性获取单例对象22     /// </summary>23     public static LogManager LogInstance24     {25       get { return m_LogInstance; }26     }27 28     /// <summary>29     /// 写入一条日志记录30     /// </summary>31     /// <param name="pLog">日志记录内容</param>32     public void WriteLog(string pLog)33     {34       lock (this._logDir) //排它锁:防止主程序中出现多线程同时访问同一个文件出错35       {36         // 根据时间创建一个日志文件37         var vDT = DateTime.Now;38         string vLogFile = string.Format("{0}\\Log{1}{2}{3}.log",_logDir,vDT.Year,vDT.Month,vDT.Day);39         // 创建文件流,用于写入40         using (FileStream fs = new FileStream(vLogFile, FileMode.Append))41         {42           StreamWriter sw = new StreamWriter(fs);43           sw.WriteLine("{0} >> {1}", vDT.ToString("yyyy-MM-dd HH:mm:ss"), pLog);44           sw.Flush();45           sw.Close();46           fs.Close();47         }48       }49     }50 51     // 删除过期文件52     private void DelOldFile()53     {54       // 遍历指定文件夹下所有子文件,将一定期限前的日志文件删除。55       if (!Directory.Exists(this._logDir))56       {57         // 如果文件夹目录不存在58         Directory.CreateDirectory(this._logDir);59         return;60       }61 62       var vFiles = (new DirectoryInfo(this._logDir)).GetFiles();63       for (int i = vFiles.Length - 1; i >= 0; i--)64       { 65         // 指定条件,然后删除66         if (vFiles[i].Name.Contains("Log"))67         {68           if ((DateTime.Now - vFiles[i].LastWriteTime).Days > 7)69           {70             vFiles[i].Delete();71           }72         }      73       }74     }75 76   } // end class

原标题:C#实现程序单例日志输出

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录