主页 > 知识库 > 网络编程 > ASP/.NET >

ASP.NET记录错误日志

来源:中国IT实验室 作者:佚名 发表于:2013-01-18 11:02  点击:
在本文中,我们将通过一个简单的处理来记录在我们的网站中的错误和异常。我们这样操作,每当遇到程序错误时,将使用者导航到一个单独的页面,同时错误将被记录到服务器上的一个文本文件,每当错误发生时,我们将以日志的形式每天记录。 首先,我先写一个静态方
在本文中,我们将通过一个简单的处理来记录在我们的网站中的错误和异常。我们这样操作,每当遇到程序错误时,将使用者导航到一个单独的页面,同时错误将被记录到服务器上的一个文本文件,每当错误发生时,我们将以日志的形式每天记录。  首先,我先写一个静态方法用于将错误信息记录到文本文件,这里是将错误信息记录到服务器上的Error文件夹下,代码如下:
  using System.Globalization;    /// <summary>
  /// 用于将错误信息输出到txt文件
  /// </summary>
  /// <param name="errorMessage">错误详细信息</param>
  public static void WriteError(string errorMessage)
  {
  try
  {
  string path = "~/Error/" + DateTime.Today.ToString("yyMMdd") + ".txt";
  if (!File.Exists(System.Web.HttpContext.Current.Server.MapPath(path)))
  {
  File.Create(System.Web.HttpContext.Current.Server.MapPath(path)).Close();
  }
  using (StreamWriter w = File.AppendText(System.Web.HttpContext.Current.Server.MapPath(path)))
  {
  w.WriteLine("\r\nLog Entry : ");
  w.WriteLine("{0}", DateTime.Now.ToString(CultureInfo.InvariantCulture));
  w.WriteLine(errorMessage);
  w.WriteLine("________________________________________________________");
  w.Flush();
  w.Close();
  }
  }
  catch (Exception ex)
  {
  WriteError(ex.Message);
  }
  }
  在网站Global.asax文件的Application_Error中加入如下代码
  void Application_Error(object sender, EventArgs e)
  {
  // 在出现未处理的错误时运行的代码
  Exception objErr = Server.GetLastError().GetBaseException();
  //记录出现错误的IP地址
  string strIP = Request.UserHostAddress;
  string err = "Ip【" + strIP + "】" + Environment.NewLine + "Error in【" + Request.Url.ToString() +
  "】" + Environment.NewLine + "Error Message【" + objErr.Message.ToString() + "】";
  //记录错误
  FN.WriteError(err);
  }配置Web.Config文件
  <system.web>
  <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
  <!--可以指定其他错误页面...-->
  </customErrors>
  </system.web>建立一个GenericErrorPage.htm文件,用于使用者出现错误时呈现的错误页面。

    有帮助
    (0)
    0%
    没帮助
    (0)
    0%