Я пытаюсь определить лучшую стратегию входа на веб-сервер async-IO, над которым я работаю.Я подумал, что проще всего было бы создать одноэлементный класс, который бы поддерживал файловые потоки открытыми для соответствующих файлов журналов, чтобы я мог просто сделать что-то вроде:
Util.Logger.GetInstance().LogAccess(str);
или что-то в этом роде.
Мой классвыглядит так:
public sealed class Logger {
private static StreamWriter sw;
private static readonly Logger instance = new Logger();
private Logger() {
sw = new StreamWriter(logfile);
}
public static Logger GetInstance() {
return instance;
}
public void LogAccess(string str) {
sw.WriteLine(str);
}
}
Это все просто в моей голове, и я ищу предложения о том, как сделать это лучше, а также убедиться, что я делаю это правильно.Самое главное, мне нужно, чтобы он был потокобезопасным, что, очевидно, не в его текущем состоянии.Не уверен, что это лучший способ сделать это.