2013-10-22 3 views
0

각 파일에 제목 행을 추가하는 가장 쉬운 방법입니다. Log()에 넣을 수 없습니다. test.Log()를 참조 할 때마다 제목 행을 추가하기 때문에 3 개의 새로운 int 필드를 참조 할 때마다 Log1/2를 참조 할 때마다 생각했습니다./3()은 int의 값을 검사하고 1이면 title 열을 추가합니다. 그렇지 않습니다. 아래에 한 가지를했지만 중복 된 것 같습니다. 더 좋은 방법이 있어야합니다.로그 파일에 제목 행을 추가하는 가장 쉬운 방법

public class Test 
{ 

    public static string File1 = DateTime.Now.ToString("yyyy-MM-dd") + "test1.csv"; 
    public static int a = 0; 
    public static string File2 = DateTime.Now.ToString("yyyy-MM-dd") + "test2.csv"; 
    public static string File3 = DateTime.Now.ToString("yyyy-MM-dd") + "test3.csv";  


    private static object _lockObj = new Object(); 


    public static void Log1(string error, string record) 
    { a++; 
     if(a==1){ 
     lock (_lockObj) 
     {  
      File.AppendAllText(test.File1, "ERROR" + Environment.NewLine)    
      File.AppendAllText(test.File1, error + "," + record + Environment.NewLine); 
     } 
     } 
    else{ 
      File.AppendAllText(test.File1, error + "," + record + Environment.NewLine); 
     } 
    } 

    public static void Log2(string message) 
    { 
     lock (_lockObj) 
     { 
      File.AppendAllText(test.File2, message + Environment.NewLine); 
     } 
    } 

    public static void Log3(Test c) 
    { 
     lock (_lockObj) 
     { 
      File.AppendAllText(test.File3, c + Environment.NewLine); 
     } 
    } 
} 
+0

파일을 만들 때 파일의 맨 위에 놓고 싶습니까? 만약 그렇다면 왜'if (! System.IO.File.Exists (test.File1)) {File.WriteAllText (test.File1, "My Header Line")}' – Harrison

+0

을 추가 할 수 있습니까? 그게 내 방법에 그것은 내가뿐만 아니라 한 번 원하는 방법을 참조 할 때마다 추가 할 것이라고 – Jt2ouan

답변

0

당신이 그것을 만들 때 파일의 상단에 제목 행을 넣고 싶다면 ...

if(!System.IO.File.Exists(test.File1)) //if the file doesn't exist 
{ //insert your header at the top 
    File.AppendAllText(test.File1,"My Header Line") 
} 

이를 파일이 처음 만들어 질 때 한 번만 추가됩니다.

1

이 같은 클래스를 만들 수 있습니다 : -

public class HeaderOnceAppender : RollingFileAppender 
{ 
    protected override void WriteHeader() 
    { 
     if (LockingModel.AcquireLock().Length == 0) 
     { 
      base.WriteHeader(); 
     } 
    } 
관련 문제