在asp.net中创建错误日志文件

时间:2012-06-16 12:19:23

标签: asp.net

在我的Web应用程序中处理错误 我正在创建一个日志文件,该文件将在global.asax的Application_Error()事件中创建 和那些基于日期(每天1个)创建的日志文件

我正在考虑发生错误并且在同一时间实例的情况 文件从多个用户同时写入

因此它可能会抛出另一个用户已经使用过的文件的异常 可能就像我不确定

任何人都可以帮助处理这种情况

非常感谢

2 个答案:

答案 0 :(得分:1)

使用mutex锁定您的写作程序。我建议mutex,而不是lock()因为可以捕获可能引发错误的所有池/线程。

在MSDN上有关于mutex和示例的详细信息:

http://msdn.microsoft.com/en-us/library/system.threading.mutex.aspx

一个简单的例子

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();
    }   
}

答案 1 :(得分:1)

您可以使用类似ELMAH的内容,它可以为您提供相当不错的错误记录。它在记录方式和日志方面非常灵活。您也可以轻松地使用NuGet添加它。

或者查看NLog