Как организовать надежную запись при логировании?
Иногда возникает ошибка:
System.IO.IOException: The process cannot access the file '..\Log\log.txt' because it is being used by another process.
Запись в файл происходит каждую секунду. Вот мой метод:
private static void WriteInFile(string fullpath, string message)
{
using (StreamWriter sw = new StreamWriter(fullpath, true))
{
sw.WriteLine(DateTime.Now.ToString() + " " + message);
}
}
PS Не нужно предлагать готовые библиотеки для логирования.
Ответ
Воспользуйтесь библиотекой NLog, она позволяет включать и отключать защиту файла при записи, и держать ли файл "открытым", очень удобная и гибкая библиотека
private static readonly Logger Log = LogManager.GetCurrentClassLogger();
...
Log.Info("Log");
Log.Error("Log");
Log.Debug("Log");
Также позволяет записывать Info, Error, Debug и т.д. в разные файлы, есть возможность даже писать в БД
Комментариев нет:
Отправить комментарий