在asp.net中创建错误日志文件
处理web应用程序中的错误 我正在创建一个日志文件,该文件将在global.asax的Application_Error()事件中创建 以及基于日期创建的日志文件(每天1个) 我正在考虑在同一时间发生错误的场景 同时从多个用户获取写入的文件 所以它可能会抛出一个异常,该文件已经被另一个用户使用 可能是这样,我不确定 有人能帮助处理这种情况吗在asp.net中创建错误日志文件,asp.net,Asp.net,处理web应用程序中的错误 我正在创建一个日志文件,该文件将在global.asax的Application_Error()事件中创建 以及基于日期创建的日志文件(每天1个) 我正在考虑在同一时间发生错误的场景 同时从多个用户获取写入的文件 所以它可能会抛出一个异常,该文件已经被另一个用户使用 可能是这样,我不确定 有人能帮助处理这种情况吗 非常感谢使用互斥锁锁定您的写作过程。我建议使用mutex,而不是lock(),因为它可以捕获所有可能抛出错误的池/线程 MSDN上有关于互斥的详细信息和示例
非常感谢使用
互斥锁
锁定您的写作过程。我建议使用mutex
,而不是lock()
,因为它可以捕获所有可能抛出错误的池/线程
MSDN上有关于互斥的详细信息和示例:
一个简单的例子
public void LogThis(string LogDetails)
{
var mut = new Mutex(true, "LogMutexName");
try
{
// Wait until it is safe to enter.
mut.WaitOne();
// here you open write close your file
}
finally
{
// Release the Mutex.
mut.ReleaseMutex();
}
}
您可以使用这样的工具,它将为您提供相当不错的错误日志记录。它在为您记录日志的方式和内容方面非常灵活。此外,您还可以使用NuGet以最小的工作量添加它
或者看看即使你的答案不错,与实际问题无关,而且一定是评论而不是答案。@Aristos-我不明白你为什么不使用ELMAH、NLog甚至log4net。你为什么要开始考虑重新发明轮子?@Kev好的,接受你的说法,但这是一个关于如何在文件上写入和避免冲突的一般性问题,而不是如何记录错误的问题。这就是为什么我认为这可以是一个评论,因为实际上并没有解决问题,只是提出了一个图书馆。换言之就是不知道答案,只知道有一个库这样做了一个错误日志。