您的位置:首页 > 编程语言 > ASP

在ASP.NET中记录错误日志(使用Global.asax)

2009-03-19 10:25 1246 查看
在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");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: