Exception 在平面文件中存储异常

Exception 在平面文件中存储异常,exception,file,flat,Exception,File,Flat,在任何应用程序中,我们都可以使用平面文件系统进行错误记录 当有多个用户在同一平面文件中记录异常时,我们如何处理该场景 非常感谢。在记录异常之前,您将获得日志文件的写锁。如果有人试图在你写作的时候登录,他们的锁定请求会等待直到你释放它。 或者,如果有这样的功能,可以使用原子文件写入操作来记录整个异常。您可以创建一个线程来写入异常,从队列中读取。实际的异常处理代码会将异常写入队列。因为只有一个线程在写文件,所以所有的东西都是序列化的。当然,您需要一个线程安全队列实现,但您的语言或框架可能提供了一个线

在任何应用程序中,我们都可以使用平面文件系统进行错误记录

当有多个用户在同一平面文件中记录异常时,我们如何处理该场景


非常感谢。

在记录异常之前,您将获得日志文件的写锁。如果有人试图在你写作的时候登录,他们的锁定请求会等待直到你释放它。
或者,如果有这样的功能,可以使用原子文件写入操作来记录整个异常。

您可以创建一个线程来写入异常,从队列中读取。实际的异常处理代码会将异常写入队列。因为只有一个线程在写文件,所以所有的东西都是序列化的。当然,您需要一个线程安全队列实现,但您的语言或框架可能提供了一个线程安全队列实现。

这意味着我们需要使用线程来实现同样的功能?此外,它会影响性能吗?是和否。如果您的应用程序是单线程的,只有一个实例存在,并且没有其他应用程序写入同一个文件,则不需要额外的机制。然而,大多数多用户应用程序在某种程度上是多线程(或多进程)的;您不必担心这个问题,只要确保没有两个进程或线程可以同时写入文件。