当前位置: 编程技术>.net/c#/asp.net
asp.net记录错误日志的代码示例
来源: 互联网 发布时间:2014-08-30
本文导语: 本文代码实现的功能: 当遇到程序错误时,将使用者导航到一个单独的页面,同时错误将被记录到服务器上的一个文本文件,每当错误发生时,将以日志的形式每天记录。 代码共分为三个部分来实现。 1、创建一个静态方法,...
本文代码实现的功能:
当遇到程序错误时,将使用者导航到一个单独的页面,同时错误将被记录到服务器上的一个文本文件,每当错误发生时,将以日志的形式每天记录。
代码共分为三个部分来实现。
1、创建一个静态方法,用于将错误信息记录到文本文件。
本例中将错误信息记录到服务器上的Error文件夹下。
代码如下:
代码示例:
using System.Globalization;
///
/// 将错误信息输出到txt文件 www.
///
/// 错误详细信息
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("rnLog Entry : ");
w.WriteLine("{0}", DateTime.Now.ToString(CultureInfo.InvariantCulture));
w.WriteLine(errorMessage);
w.WriteLine("________________________________________________________");
w.Flush();
w.Close();
}
}
catch (Exception ex)
{
WriteError(ex.Message);
}
}
///
/// 将错误信息输出到txt文件 www.
///
/// 错误详细信息
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("rnLog Entry : ");
w.WriteLine("{0}", DateTime.Now.ToString(CultureInfo.InvariantCulture));
w.WriteLine(errorMessage);
w.WriteLine("________________________________________________________");
w.Flush();
w.Close();
}
}
catch (Exception ex)
{
WriteError(ex.Message);
}
}
2、在网站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);
}
{
// 在出现未处理的错误时运行的代码
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);
}
3、修改配置文件 Web.Config
代码示例:
创建一个GenericErrorPage.htm文件,作为错误信息的呈现页面。
就是这样了,很简单吧,实时捕获错误并记录到日志中,对于分析程序异常与代码优化,都是很有作用的。
建议大家亲自动手测试,看看效果如何?!