log_handlers/RotatingFileHandler.md
Класс RotatingFileHandler
Пространство имён: goodboyalex\php_components_pack\log_handlers
Версия: 1.0
Доступно с: 1.3
Описание
Класс реализует обработчик системы журналирования для вывода в файл с автоматической ротацией по размеру и количеству файлов.
Основные характеристики
- Ротация файлов: автоматическое управление размером и количеством файлов
- Форматирование: использует установленный форматер
- Конфигурация: через массив настроек
- Режим записи: добавление в конец файла
Свойства класса
formatter: объект форматера сообщенийconfig: массив конфигурации
Методы класса
Основные методы
handle(): обработка и запись сообщенияsetFile(): установка пути к файлуsetSizeLimit(): установка максимального размера файлаsetFilesLimit(): установка максимального количества файлов
Конфигурация
Пример настроек:
$config = [
'file' => 'c:\logs\my_log.log',
'max_size' => 5242880, // 5 МБ
'max_files' => 3
];
Примеры использования
// Создание обработчика
$formatter = new DefaultLogFormatter();
$handler = new RotatingFileHandler();
$handler->formatter = $formatter;
$handler->setFile('app.log');
$handler->setSizeLimit(1024 * 1024); // 1 МБ
$handler->setFilesLimit(5);
// Обработка сообщения
$handler->handle(
MessageType::INFO,
'Операция выполнена',
['user_id' => 123]
);
Особенности реализации
- Автоматическая ротация: при достижении максимального размера
- Управление файлами: ограничение по количеству
- Форматирование: использование установленного форматера
- Режим добавления: файлы не перезаписываются
Рекомендации по использованию
-
Настройка конфигурации:
- Укажите корректный путь к файлу
- Настройте оптимальный размер файлов
- Определите подходящее количество файлов
-
Обработка ошибок:
- Добавьте проверку существования директории
- Обработайте возможные ошибки записи
Ограничения
- Производительность: прямая запись может снижать производительность
- Безопасность: требуется контроль прав доступа
- Размер файлов: необходимо следить за свободным местом на диске