Страницы

Поиск по вопросам

вторник, 9 июля 2019 г.

C# надежное логирование

Как организовать надежную запись при логировании? Иногда возникает ошибка:
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 и т.д. в разные файлы, есть возможность даже писать в БД

Комментариев нет:

Отправить комментарий