Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net中创建错误日志文件_Asp.net - Fatal编程技术网

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

在asp.net中创建错误日志文件,asp.net,Asp.net,处理web应用程序中的错误 我正在创建一个日志文件,该文件将在global.asax的Application_Error()事件中创建 以及基于日期创建的日志文件(每天1个) 我正在考虑在同一时间发生错误的场景 同时从多个用户获取写入的文件 所以它可能会抛出一个异常,该文件已经被另一个用户使用 可能是这样,我不确定 有人能帮助处理这种情况吗 非常感谢使用互斥锁锁定您的写作过程。我建议使用mutex,而不是lock(),因为它可以捕获所有可能抛出错误的池/线程 MSDN上有关于互斥的详细信息和示例

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

我正在考虑在同一时间发生错误的场景 同时从多个用户获取写入的文件

所以它可能会抛出一个异常,该文件已经被另一个用户使用 可能是这样,我不确定

有人能帮助处理这种情况吗


非常感谢

使用
互斥锁
锁定您的写作过程。我建议使用
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好的,接受你的说法,但这是一个关于如何在文件上写入和避免冲突的一般性问题,而不是如何记录错误的问题。这就是为什么我认为这可以是一个评论,因为实际上并没有解决问题,只是提出了一个图书馆。换言之就是不知道答案,只知道有一个库这样做了一个错误日志。