真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C#實(shí)現(xiàn)程序單例日志輸出功能

對于一個(gè)完整的程序系統(tǒng),一個(gè)日志記錄是必不可少的??梢杂盟鼇碛涗洺绦蛟谶\(yùn)行過程中的運(yùn)行狀態(tài)和報(bào)錯(cuò)信息。比如,那些不想通過彈框提示的錯(cuò)誤,程序執(zhí)行過程中捕獲的異常等。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比雙城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式雙城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋雙城地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

首先,在你的解決方案中,適當(dāng)?shù)哪夸浿行陆ㄒ粋€(gè)類,比如 LogManager:

編寫如下代碼:

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

    private static LogManager m_LogInstance; // 靜態(tài)單例對象
    // 靜態(tài)構(gòu)造函數(shù)
    static LogManager()
    {
      m_LogInstance = new LogManager();
    }
    // 私有構(gòu)造函數(shù)(必備函數(shù),不允許外部對該類進(jìn)行實(shí)例化)
    private LogManager()
    {
      _logDir = Environment.CurrentDirectory + "\\Log";
      this.DelOldFile();
    }
    /// 
    /// 屬性獲取單例對象
    /// 
    public static LogManager LogInstance
    {
      get { return m_LogInstance; }
    }

    /// 
    /// 寫入一條日志記錄
    /// 
    /// 日志記錄內(nèi)容
    public void WriteLog(string pLog)
    {
      lock (this._logDir) //排它鎖:防止主程序中出現(xiàn)多線程同時(shí)訪問同一個(gè)文件出錯(cuò)
      {
        // 根據(jù)時(shí)間創(chuàng)建一個(gè)日志文件
        var vDT = DateTime.Now;
        string vLogFile = string.Format("{0}\\Log{1}{2}{3}.log",_logDir,vDT.Year,vDT.Month,vDT.Day);
        // 創(chuàng)建文件流,用于寫入
        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

其中,第8行-第26行是關(guān)于實(shí)現(xiàn)單例模式的一種方法。這樣,在你程序的需要位置執(zhí)行:

LogManager.LogInstance.WriteLog("產(chǎn)生了一條日志記錄");

就會在指定文件中參數(shù)一條日志記錄了。

即:2016-11-23 23:53:45  >>  產(chǎn)生了一條日志記錄

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


文章題目:C#實(shí)現(xiàn)程序單例日志輸出功能
本文來源:http://weahome.cn/article/ijgjpg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部