我对单例模式的缺点感到很不满意。 Logging应用程序是许多论坛中建议的有效使用Singleton的方法。我想知道为什么这是对模式的有效使用。我们不是在整个应用程序的内存中维护状态信息吗?

为什么不只使用一个函数:

class Logger
{
    public static void Log(string message)
    {
         //Append to file

    }
}

最佳答案

要回答“为什么不只使用一个函数”:此代码在多线程日志记录中无法正常工作。如果两个线程尝试写入同一文件,则将引发异常。这就是为什么最好使用单例记录。在此解决方案中,我们有一个线程安全的单例容器,其他线程将消息(日志)安全地推送到该容器中。然后,容器(总是一个线程安全队列)将消息/日志一一写入到文件/db/etc中。

关于c# - 为什么使用单例进行应用程序日志记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9731095/

10-17 00:53