欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-03 15:30:52
在本文中,我们将通过一个简单的处理来记录在我们的网站中的错误和异常。我们这样操作,每当遇到程序错误时,将使用者导航到一个单独的页面,同时错误将被记录到服务器上的一个文本文件...

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

首先,我先写一个静态方法用于将错误信息记录到文本文件,这里是将错误信息记录到服务器上的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文件,用于使用者出现错误时呈现的错误页面。