【发布时间】:2013-01-10 20:54:48
【问题描述】:
我计划编写类似于this 的错误日志记录:
public static void WriteError(string errorMessage)
{
try
{
string path = "~/Error/" + DateTime.Today.ToString("dd-mm-yy") + ".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("\r\nLog Entry : ");
w.WriteLine("{0}", DateTime.Now.ToString(CultureInfo.InvariantCulture));
string err = "Error in: " + System.Web.HttpContext.Current.Request.Url.ToString() +
". Error Message:" + errorMessage;
w.WriteLine(err);
w.WriteLine("__________________________");
w.Flush();
w.Close();
}
}
catch (Exception ex)
{
WriteError(ex.Message);
}
}
我的问题是:既然是网站,我会同时拥有多个用户。在那种情况下,如果多个用户同时遇到异常并尝试写入同一个文件,它会再次给我一个异常对吗?在这种情况下,如何为同时用户正确实现错误日志记录?或者这会起作用吗?
提前致谢。
【问题讨论】:
-
记录错误的好主意,尝试推出自己的日志框架的糟糕主意。如答案中所述,请查看 log4net - 超级易于使用,并且通过配置设置调整日志记录非常灵活。此外,它还为记录警告和其他信息提供了强大的支持,而不仅仅是错误。
标签: c# asp.net .net logging error-handling