附加到文本文件每个错误

时间:2016-02-03 16:02:49

标签: c# asp.net logging

我正在使用此语法将错误写入文本文件以便登录Global.axax - 它每次都会覆盖并仅记录最近的错误。虽然这很有帮助,但它并没有我需要的那么有用。如何记录引发的每个错误?

这是我目前只记录最新代码的代码:

void Application_Error(object sender, EventArgs e)
{ 
    Exception CurrentException = Server.GetLastError();
    Server.ClearError();
    if (CurrentException != null)
    {
        try
        {
            using (StreamWriter sw = new StreamWriter(Server.MapPath("HereAreErrors.txt")))
            {
            sw.WriteLine(CurrentException.ToString());
            sw.Close();
            }
        }
        catch (Exception ex) { }
    }
}

1 个答案:

答案 0 :(得分:1)

正如其他人所说,您最好使用现有的日志工具来处理日志记录。它们具有无数的功能,最重要的是,由其他人维护!

话虽如此,并且为了回答所问的问题,以下是如何解决您的问题。如果文件不存在,它还有创建文件的额外好处。

void Application_Error(object sender, EventArgs e)
{ 
  Exception CurrentException = Server.GetLastError();
  Server.ClearError();
  if (CurrentException != null)
  {
    try
    {
        File.AppendAllText(Server.MapPath("HereAreErrors.txt"), CurrentException.ToString());
    }
    catch (Exception ex) { }
  }
}