服务器端错误记录

时间:2013-08-01 03:11:49

标签: c# wcf iis logging error-handling

我正在创建将在IIS中托管的Web应用程序,我计划接受很多短时间连接。现在我正在进行错误记录,事实证明它并不清楚如何做到这一点。

例如,我的后端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。

2 个答案:

答案 0 :(得分: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);
                }


    }

答案 1 :(得分:0)

与另一篇文章一样 - 最好的解决方案是使用您自己的文件进行日志记录。我建议使用log4net。这需要一段时间才能开始,但是一旦你学会了它,你会发现它是多么有用。它允许您设置不同的日志记录级别,这样您就可以只记录当时需要的信息并动态更改。