Я действительно рекомендую не изобретать велосипед на этом :)

ли следующее правильным способом реализовать довольно простой потокобезопасный класс журналирования?

Я знаю, что никогда не закрываюTextWriterэто будет проблемой?

Когда я изначально использовалTextWriter.Synchronized Этот метод, похоже, не работал, пока я не инициализировал его в статическом конструкторе и не сделал его доступным только для чтения:

public static class Logger
{
    static readonly TextWriter tw; 

    static Logger()
    {
        tw = TextWriter.Synchronized(File.AppendText(SPath() + "\\Log.txt")); 
    }

    public static string SPath()
    {
        return ConfigManager.GetAppSetting("logPath"); 
    }

    public static void Write(string logMessage)
    {
        try
        {
            Log(logMessage, tw);
        }
        catch (IOException e)
        {
            tw.Close();
        }
    }

    public static void Log(string logMessage, TextWriter w)
    {
        w.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(),
            DateTime.Now.ToLongDateString());
        w.WriteLine("  :");
        w.WriteLine("  :{0}", logMessage);
        w.WriteLine("-------------------------------");

        // Update the underlying file.
        w.Flush();
    }
}

Ответы на вопрос(5)

Ваш ответ на вопрос