2013-08-01 165 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); 
       } 


    }