2017-11-27 8 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はconsunを切断します。ライブラリのようなLog4NEtでは、ロギングの部分に集中するのではなく、ビジネスロジックに集中できます。

  • 別に
  • log4netのは、あなたが異なるレベルでログに記録することができますことを、それがすべてである、情報、警告、デバッグなどを形成log4netのライブラリーのようなあなたは、簡単な構成で、ファイルやデータベースにあなたの詳細をログに記録することができます。

(ありlog4netのようなフレームワークが提供する多くの機能が必要なコードの同一の特徴多くを達成するために、もあり、あなたは、ログインするためのフレームワークを定義するビジネスロジックからあなたの注意をそらす。)

あなたが達成する必要がある場合多くのコードを書く必要があるのと同じ機能です(異なるクラスのデータベースに対して1つのクラスにログインし、他のクラスよりもファイルにログインできるようにするため)、differnetレベルの条件がたくさんあります。

関連する問題