zl程序教程

您现在的位置是:首页 >  后端

当前栏目

ASP.NET记录错误日志的实现方法

Net错误ASP方法日志 实现 记录
2023-06-13 09:14:52 时间

在本文中,我们将通过一个简单的处理来记录在我们的网站中的错误和异常。我们这样操作,每当遇到程序错误时,将使用者导航到一个单独的页面,同时错误将被记录到服务器上的一个文本文件,每当错误发生时,我们将以日志的形式每天记录。

首先,我先写一个静态方法用于将错误信息记录到文本文件,这里是将错误信息记录到服务器上的Error文件夹下
代码如下:

复制代码代码如下:

usingSystem.Globalization;

   ///<summary>
   ///用于将错误信息输出到txt文件
   ///</summary>
   ///<paramname="errorMessage">错误详细信息</param>
   publicstaticvoidWriteError(stringerrorMessage)
   {
       try
       {
           stringpath="~/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(StreamWriterw=File.AppendText(System.Web.HttpContext.Current.Server.MapPath(path)))
           {
               w.WriteLine("\r\nLogEntry:");
               w.WriteLine("{0}",DateTime.Now.ToString(CultureInfo.InvariantCulture));
               w.WriteLine(errorMessage);
               w.WriteLine("________________________________________________________");
               w.Flush();
               w.Close();
           }
       }
       catch(Exceptionex)
       {
           WriteError(ex.Message);
       }
   }


在网站Global.asax文件的Application_Error中加入如下代码
复制代码代码如下:

voidApplication_Error(objectsender,EventArgse)
   {
       //在出现未处理的错误时运行的代码
       ExceptionobjErr=Server.GetLastError().GetBaseException();
       //记录出现错误的IP地址
       stringstrIP=Request.UserHostAddress;
      stringerr="Ip【"+strIP+"】"+Environment.NewLine+"Errorin【"+Request.Url.ToString()+
                         "】"+Environment.NewLine+"ErrorMessage【"+objErr.Message.ToString()+"】";
       //记录错误
       FN.WriteError(err);
   }

配置Web.Config文件
复制代码代码如下:
<system.web>
   <customErrorsmode="RemoteOnly"defaultRedirect="GenericErrorPage.htm">
    <!--可以指定其他错误页面...-->
   </customErrors>
   </system.web>

建立一个GenericErrorPage.htm文件,用于使用者出现错误时呈现的错误页面。