91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#實現程序單例日志輸出功能

發布時間:2020-08-20 06:35:05 來源:腳本之家 閱讀:299 作者:云夢鴻 欄目:編程語言

對于一個完整的程序系統,一個日志記錄是必不可少的。可以用它來記錄程序在運行過程中的運行狀態和報錯信息。比如,那些不想通過彈框提示的錯誤,程序執行過程中捕獲的異常等。

首先,在你的解決方案中,適當的目錄中新建一個類,比如 LogManager:

編寫如下代碼:

/// <summary>
  /// 日志管理
  /// </summary>
  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();
    }
    /// <summary>
    /// 屬性獲取單例對象
    /// </summary>
    public static LogManager LogInstance
    {
      get { return m_LogInstance; }
    }

    /// <summary>
    /// 寫入一條日志記錄
    /// </summary>
    /// <param name="pLog">日志記錄內容</param>
    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

其中,第8行-第26行是關于實現單例模式的一種方法。這樣,在你程序的需要位置執行:

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

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

即:2016-11-23 23:53:45  >>  產生了一條日志記錄

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大方县| 丽水市| 都安| 博湖县| 崇仁县| 济南市| 贵溪市| 长治县| 长白| 蚌埠市| 凉山| 武鸣县| 商南县| 武冈市| 平阳县| 海晏县| 南陵县| 皋兰县| 南江县| 玉溪市| 吴桥县| 怀仁县| 大石桥市| 柳州市| 内乡县| 博罗县| 舞钢市| 丁青县| 澄城县| 钦州市| 定南县| 塔城市| 恩平市| 镇原县| 玉山县| 恭城| 文山县| 比如县| 漳浦县| 延川县| 青田县|