C\#프로그램 단일 로그 출력 기능 구현

2930 단어 C#순서로그 출력
완전한 프로그램 시스템 에 대해 서 는 로그 기록 이 없어 서 는 안 된다.프로그램 이 실행 중인 상태 와 오류 메 시 지 를 기록 할 수 있 습 니 다.예 를 들 어 탄창 을 통 해 알 리 고 싶 지 않 은 오류,프로그램 실행 과정 에서 캡 처 된 이상 등 이다.
우선,당신 의 해결 방안 에서 적당 한 디 렉 터 리 에 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  >>  로그 기록 이 생 겼 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기