2013-08-01 55 views
0

我正在創建Web應用程序,它將在IIS中託管,我打算接受很多短時間連接。現在我正在處理錯誤日誌,事實證明,如何做到這一點並不明確。服務器端錯誤日誌記錄

例如,我的後端sql server發生故障,1000個客戶端每10分鐘嘗試從服務器獲取響應,將在1小時內在服務器60000事件的事件日誌中氾濫。任何人都可以分享他的經驗:如何不在服務器上氾濫事件日誌?

的代碼是接近這個:

RequestHandler:

try { 
    SqlConnection con = new SqlConnection(...); 
    cmd.CommandText = "SELECT TOP FROM Foo WHERE Bar = `"Some`""; 
    con.Open(); 
    cmd.Connection = con; 

    // convert data to instance 
} 
catch (SqlException ex) 
{ 
    Logger.WriteErrorEvent(ex) 
} 
// convert instance to response and send it back. 

感謝, Jenia。

+0

你能顯示你的代碼嗎?重寫一個HTTP服務器=重寫IIS? – Raptor

+0

對不起,我正在創建一個IIS Web應用程序。 – Ievgen

回答

0

正如在另一篇文章中 - 最好的解決方案是使用自己的文件進行日誌記錄。我建議爲此使用log4net。開始需要一段時間,但一旦你瞭解它,你會看到它是多麼有用。它將允許您設置不同的日誌記錄級別,以便您可以僅記錄當時需要的信息並實時更改它們。

0

而不是記錄到事件日誌,您需要創建一個文件並將所有錯誤寫入該文件。就像下面的方法一樣,只要你有任何異常,你都可以調用這個方法。

public static void SaveLog(string exc) 
    { 

      FileStream objFS = null; 


       string strFilePath = "Exception.log"; 
       if (!File.Exists(strFilePath)) 
       { 
        objFS = new FileStream(strFilePath, FileMode.Create); 
       } 
       else 
        objFS = new FileStream(strFilePath, FileMode.Append); 

       using (StreamWriter Sr = new StreamWriter(objFS)) 
       { 
        Sr.WriteLine(System.DateTime.Now.ToShortTimeString() + "---" + exc); 
       } 


    }