利用Global.asax的Application_Error实现错误记录
错误日志
void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 Exception ex = Server.GetLastError().GetBaseException(); StringBuilder str = new StringBuilder(); str.Append(" " + DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss")); str.Append(" .客户信息:"); 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(" Ip:" + ip); str.Append(" 浏览器:" + Request.Browser.Browser.ToString()); str.Append(" 浏览器版本:" + Request.Browser.MajorVersion.ToString()); str.Append(" 操作系统:" + Request.Browser.Platform.ToString()); str.Append(" .错误信息:"); str.Append(" 页面:" + Request.Url.ToString()); str.Append(" 错误信息:" + ex.Message); str.Append(" 错误源:" + ex.Source); str.Append(" 异常方法:" + ex.TargetSite); str.Append(" 堆栈信息:" + ex.StackTrace); str.Append(" --------------------------------------------------------------------------------------------------"); //创建路径 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"); }