2017-11-27 10 views
-1

Log4net (또는 다른 로깅 프레임 워크) 대 네이티브 .net 파일로 작성하는 것의 이점은 무엇입니까? 지금까지 파일에 쓸 유틸리티 클래스를 사용했습니다. 이러한 프레임 워크 내 수업 (나를 위해 잘 작동) 내 수업을 도랑과 일부 로깅 프레임 워크로 변환 할 수있는 지점이 그래서 기본적으로 내 질문에 종료 몰랐.net 네이티브 파일 대 어떤 로깅 프레임 워크 대

class FileUtils 
{ 

    string mPath; 
    private static object locker = new Object(); 

    public void createNewLogFile(string path) 
    { 
     try 
     { 
      lock (locker) 
      { 
       mPath = path; 
       string backUpPath = path + @".bak"; 
       FileInfo MyFile = new FileInfo(path); 


       Directory.CreateDirectory(Path.GetDirectoryName(path)); 

       if (File.Exists(path)) 
       { 
        if (new FileInfo(path).Length > Math.Pow(2, 20)) 
        { 
         if (File.Exists(backUpPath)) 
         { 

          File.Delete(backUpPath); 
         } 
         File.Copy(path, backUpPath); 

        } 
       } 
      } 


     } 
     catch (Exception ex) 
     { 
     // outputFile.Close(); 
      var t = ex; 
      throw; 

     } 
    } 



    public void log (string fileLocation ,bool newLine, params string[] input) 
    { 
     createNewLogFile(fileLocation); 
     using (StreamWriter outputFile = File.AppendText(mPath)) 
     { 
      outputFile.AutoFlush = true; 

      try 
      { 
       if (newLine) 
        outputFile.Write(Environment.NewLine + DateTime.Now.ToString("dd-MM-yy HH:mm:ss ")); 


       for (int i = 0; i < input.Length; i++) 
       { 
        outputFile.Write(input[i] + " ");       
       } 


      } 
      catch (Exception ex) 
      { 
       throw new Exception(ex.Message); 
      } 
      finally 
      { 
       outputFile.Close(); 
      } 
     } 


    } 

} 
+3

나는 두려워서, 이것은 일종의 의견을 기반으로합니다. 물론 로깅 프레임 워크 **에는 많은 이점이 있습니다. 런타임에서도 구성 가능합니다. 바퀴를 재발 명할 필요가 없습니다. 출력은 파일에 바인딩되지 않습니다 (Windows 이벤트 로그, 전자 메일, 데이터베이스 등에 로그 할 수 있습니다). * 많은 작업을 처리하므로 로깅 방법보다는 기본 작업에 집중할 수 있습니다. – Fildor

답변

0

응용 프로그램에 대한 로깅 가지입니다 Corss 자상하고 있습니다. 라이브러리와 같은 Log4NEt를 사용하면 로깅 부분에 집중하는 대신 비즈니스 논리에 집중할 수 있습니다. 라이브러리는 파일 또는 간단한 구성으로 데이터베이스에 세부 사항을 기록 할 수 있습니다처럼

  • 이 외에도 Log4Net 당신이 다른 수준에서 로그인 할 수 있음을 형성, 그 모든, 정보, 경고, 디버그 등
  • Log4NEt입니다.

(이 코드와 동일한 기능을 많이 필요하고 로깅을위한 프레임 워크를 정의하기 위해 비즈니스 로직에서 당신에게 관심을 전환. 달성하기 Log4Net 같은 프레임 워크에서 제공 또한 더 많은 기능이다)

당신이 달성해야하는 경우는 당신이 코드를 많이 쓰는 것과 같은 기능 (데이터베이스 하나의 클래스에 로그인하고 다른 클래스보다 파일에 로그를 허용하는 것과 같은 다른 로깅을 위해)와 differnet 레벨을위한 많은 조건을 필요로한다.