[置顶] 利用Global.asax的Application_Error实现错误记录,错误日志

利用Global.asax的Application_Error实现错误记录

错误日志

 

void Application_Error(object sender, EventArgs e)
    {
        // 在出现未处理的错误时运行的代码
        Exception ex = Server.GetLastError().GetBaseException();
        StringBuilder str = new StringBuilder();
        str.Append("\r\n" + DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss"));
        str.Append("\r\n.客户信息:");


        string ip = "";
        if (Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR") != null)
        {
            ip = Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR").ToString().Trim();
        }
        else
        {
            ip = Request.ServerVariables.Get("Remote_Addr").ToString().Trim();
        }
        str.Append("\r\n\tIp:" + ip);
        str.Append("\r\n\t浏览器:" + Request.Browser.Browser.ToString());
        str.Append("\r\n\t浏览器版本:" + Request.Browser.MajorVersion.ToString());
        str.Append("\r\n\t操作系统:" + Request.Browser.Platform.ToString());
        str.Append("\r\n.错误信息:");
        str.Append("\r\n\t页面:" + Request.Url.ToString());
        str.Append("\r\n\t错误信息:" + ex.Message);
        str.Append("\r\n\t错误源:" + ex.Source);
        str.Append("\r\n\t异常方法:" + ex.TargetSite);
        str.Append("\r\n\t堆栈信息:" + ex.StackTrace);
        str.Append("\r\n--------------------------------------------------------------------------------------------------");
        //创建路径
        string upLoadPath = Server.MapPath("~/log/");
        if (!System.IO.Directory.Exists(upLoadPath))
        {
            System.IO.Directory.CreateDirectory(upLoadPath);
        }
        //创建文件 写入错误
        System.IO.File.AppendAllText(upLoadPath + DateTime.Now.ToString("yyyy.MM.dd") + ".log", str.ToString(), System.Text.Encoding.UTF8);
        //处理完及时清理异常
        Server.ClearError();
	//跳转至出错页面
        Response.Redirect("~/error.html");
    }


 

 

你可能感兴趣的:(application)