C#实现程序单例日志输出功能-创新互联

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

在成都网站制作、成都网站建设、外贸营销网站建设中从网站色彩、结构布局、栏目设置、关键词群组等细微处着手,突出企业的产品/服务/品牌,帮助企业锁定精准用户,提高在线咨询和转化,使成都网站营销成为有效果、有回报的无锡营销推广。创新互联专业成都网站建设十载了,客户满意度97.8%,欢迎成都创新互联客户联系。

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

编写如下代码:

/// 
  /// 日志管理
  /// 
  public class LogManager
  {
    private string _logDir; // 日志文件存放目录

    private static LogManager m_LogInstance; // 静态单例对象
    // 静态构造函数
    static LogManager()
    {
      m_LogInstance = new LogManager();
    }
    // 私有构造函数(必备函数,不允许外部对该类进行实例化)
    private LogManager()
    {
      _logDir = Environment.CurrentDirectory + "\\Log";
      this.DelOldFile();
    }
    /// 
    /// 属性获取单例对象
    /// 
    public static LogManager LogInstance
    {
      get { return m_LogInstance; }
    }

    /// 
    /// 写入一条日志记录
    /// 
    /// 日志记录内容
    public void WriteLog(string pLog)
    {
      lock (this._logDir) //排它锁:防止主程序中出现多线程同时访问同一个文件出错
      {
        // 根据时间创建一个日志文件
        var vDT = DateTime.Now;
        string vLogFile = string.Format("{0}\\Log{1}{2}{3}.log",_logDir,vDT.Year,vDT.Month,vDT.Day);
        // 创建文件流,用于写入
        using (FileStream fs = new FileStream(vLogFile, FileMode.Append))
        {
          StreamWriter sw = new StreamWriter(fs);
          sw.WriteLine("{0} >> {1}", vDT.ToString("yyyy-MM-dd HH:mm:ss"), pLog);
          sw.Flush();
          sw.Close();
          fs.Close();
        }
      }
    }

    // 删除过期文件
    private void DelOldFile()
    {
      // 遍历指定文件夹下所有子文件,将一定期限前的日志文件删除。
      if (!Directory.Exists(this._logDir))
      {
        // 如果文件夹目录不存在
        Directory.CreateDirectory(this._logDir);
        return;
      }

      var vFiles = (new DirectoryInfo(this._logDir)).GetFiles();
      for (int i = vFiles.Length - 1; i >= 0; i--)
      { 
        // 指定条件,然后删除
        if (vFiles[i].Name.Contains("Log"))
        {
          if ((DateTime.Now - vFiles[i].LastWriteTime).Days > 7)
          {
            vFiles[i].Delete();
          }
        }      
      }
    }

  } // end class

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:C#实现程序单例日志输出功能-创新互联
转载源于:http://pwwzsj.com/article/djshdp.html