在ASP.NET中记录错误日志

在Global.asax的Application_Error中的代码如下:

void Application_Error(object sender, EventArgs e)
    {
         // 在出现未处理的错误时运行的代码
         Exception objErr = Server.GetLastError

().GetBaseException();
        string error = string.Empty;
        string errortime = string.Empty;
        string erroraddr = string.Empty;
        string errorinfo = string.Empty;
        string errorsource = string.Empty;
        string errortrace = string.Empty;

        error += "发生时间:" +

System.DateTime.Now.ToString() + "<br>";
        errortime = "发生时间:" +

System.DateTime.Now.ToString();

        error += "发生异常页: " + Request.Url.ToString() +

"<br>";
        erroraddr = "发生异常页: " + Request.Url.ToString

();

        error += "异常信息: " + objErr.Message + "<br>";
        errorinfo = "异常信息: " + objErr.Message;
        errorsource = "错误源:" + objErr.Source;
        errortrace = "堆栈信息:" + objErr.StackTrace;
        error += "--------------------------------------

<br>";
        Server.ClearError();
        Application["error"] = error;
        //独占方式,因为文件只能由一个进程写入.
        System.IO.StreamWriter writer = null;
        try
        {
            lock (this)
            {
                // 写入日志
                string year = DateTime.Now.Year.ToString

();
                string month =

DateTime.Now.Month.ToString();
                string path = string.Empty;
                string filename =

DateTime.Now.Day.ToString() + ".txt";
                path = Server.MapPath("~/Error/") + year +

"/" + month;
                //如果目录不存在则创建
                if (!System.IO.Directory.Exists(path))
                {
                    System.IO.Directory.CreateDirectory

(path);
                }
                System.IO.FileInfo file = new

System.IO.FileInfo(path + "/" + filename);
                //if (!file.Exists)
                //    file.Create();
                //file.Open(System.IO.FileMode.Append);   

  
                writer = new System.IO.StreamWriter

(file.FullName, true);//文件不存在就创建,true表示追加
                writer.WriteLine("用户IP:" +

Request.UserHostAddress);
                //if (Session["UserName"] != null)
                //{
                //    writer.WriteLine("用户名" +

System.Web.HttpContext.Current.Session

["UserName"].ToString());
                //}
                writer.WriteLine(errortime);
                writer.WriteLine(erroraddr);
                writer.WriteLine(errorinfo);
                writer.WriteLine(errorsource);
                writer.WriteLine(errortrace);
                writer.WriteLine("-----------------------

---------------------------------------------------------

------");
                //writer.Close();
            }
        }
        finally
        {
            if (writer != null)
                writer.Close();

        }
        Response.Redirect("~/Error/ErrorPage.aspx");

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值