RotationLogger
Одноплатный компьютер (контроллер) имеет небольшой объем дискового пространства. Необходимо написать класс Logger, который позволяет хранить наиболее актуальную информацию о работе контроллера, избавляясь от старой (по кругу).
Информация пишется в несколько лог файлов ограниченного размера и передается на сервер в случайные моменты (когда устанавливается качественная связь), переданные файлы на контроллере стираются. Дозапись всегда ведется в последний лог-файл, если размер позволяет. Если на контроллере накапливается максимальное количество лог-файлов не переданных на сервер, самый старый пересоздается.
Приложение, которое использует логгер, не многопоточное, но может быть запущено одновременно в нескольких экземплярах (запускается, выполняет свою работу и закрывается).
Имена файлов должны быть уникальны, чтобы лог-файлы на сервере не перезатирались.
Конструктор:
Logger (int vNumber, int vMaxSize, std::string vPath);
vNumber – максимальное количество лог-файлов в ротации, vMaxSize – максимальный размер одного лог-файла.
Методы класса:
Write (std::string vText); // Запись информацию без даты.
DateWrite (std::string vText); // Запись информации с датой.
Наличие других методов приветствуется. Оправданное наличие дополнительных аргументов в конструкторе не воспрещается. Желательно С++11 задействовать в минимальном объеме; С++14, С++17 и boost не использовать вообще.
Тестовое задание успешно выполнено и одобрено