首页 > 解决方案 > 在静态类中配置静态 StreamWriter

问题描述

Logger.WriteLine("Hello World")我有以下记录器类,它将彩色消息打印到控制台中,并在每次调用时将它们写入文件(log.txt) 。

如果您想知道_locker,那只是因为多线程弄乱了控制台颜色,因为Console.ForegroundColor它是全局设置的。

由于我的类是静态的,我不太确定是否和/或何时应该Close()使用Dispose()静态 StreamWriter 对象,因为最终它是静态的,它不应该真正产生任何影响,但我觉得那是不正确的。

意见?

/// <summary>
/// Logger class.
/// </summary>
public static class Logger
{
    private static readonly object _locker = new object();
    private static readonly StreamWriter _sw = new StreamWriter("log.txt");

    public static void WriteLine(string message, ConsoleColor color = ConsoleColor.Gray)
    {
        lock (_locker)
        {
            Console.ForegroundColor = color;
            Console.WriteLine(message);
            Console.ResetColor();
        }

        _sw.WriteLine(message);
        _sw.Flush();
    }
}

标签: c#static

解决方案


推荐阅读