2016-01-04 55 views
2

我想在asp.net webforms中設計的Web應用程序中記錄錯誤。使用asp.net記錄文件大小檢查和日誌寫入

目前當過引發異常

void Application_Error(object sender, EventArgs e) 
    { 

     // Code that runs when an unhandled error occurs 


      Exception exc = Server.GetLastError(); 

      // Include enterprise logic for logging exceptions 
      // Get the absolute path to the log file 
      string logFile = "~/App_Data/ErrorLog.txt"; 
      logFile = HttpContext.Current.Server.MapPath(logFile); 

      // Open the log file for append and write the log 
      using (StreamWriter sw = new StreamWriter(logFile, true)) 
      { 
       sw.WriteLine("********** {0} **********", DateTime.Now); 
       if (exc.InnerException != null) 
       { 
        sw.Write("Inner Exception Type: "); 
        sw.WriteLine(exc.InnerException.GetType().ToString()); 
        sw.Write("Inner Exception: "); 
        sw.WriteLine(exc.InnerException.Message); 
        //sw.Write("Inner Source: "); 
        sw.WriteLine(exc.InnerException.Source); 
        if (exc.InnerException.StackTrace != null) 
        { 
         // sw.WriteLine("Inner Stack Trace: "); 
         // sw.WriteLine(exc.InnerException.StackTrace); 
        } 
       } 

       sw.Write("Exception Type: "); 
       sw.WriteLine(exc.GetType().ToString()); 
       sw.WriteLine("Exception: " + exc.Message); 
       // sw.WriteLine("Source: " + source); 
       //sw.WriteLine("Stack Trace: "); 
       if (exc.StackTrace != null) 
       { 
       // sw.WriteLine(exc.StackTrace); 
        // sw.WriteLine(); 
       } 
       // sw.Close(); 
      } 

    } 

我怎麼能修改此代碼,這樣我可以檢查文件的大小首先,看它是否已經達到1MB大小我用下面的代碼來記錄錯誤。如果日誌文件已經達到1MB的大小,然後我將創建日期標籤等

+0

您可以使用FileInfo檢查文件大小 – User2012384

回答

2

可以以這種方式使用的FileInfo另一個文件:

FileInfo fi = new FileInfo(logFile); 
if(fi.length > 1024) { 
    // create new file 
} 
1

另一種選擇是使用一個強大的日誌庫如NLog。它允許您指定maximum file size作爲日誌文件,也可以自動指定delete old files

正如您所看到的,這些選項和許多其他選項都是基於xml配置自動處理的。