log_handlers/BufferedRotatingFileHandler.md


Класс BufferedRotatingFileHandler

Пространство имён: goodboyalex\php_components_pack\log_handlers
Версия: 1.0
Доступно с: 1.3

Описание

Класс реализует обработчик системы журналирования с буферизацией и ротацией файлов. Предназначен для веб-приложений с рекомендуемым буфером 50-100 сообщений.

Основные характеристики

  • Буферизация: накопление записей в памяти
  • Ротация: автоматическое управление размером и количеством файлов
  • Конфигурация: через массив настроек
  • Форматирование: использует ILogFormatter для форматирования сообщений

Свойства класса

  • formatter: объект форматера сообщений
  • config: массив конфигурации

Методы класса

Основные методы

  • handle(): обработка и запись сообщения
  • flush(): принудительный сброс буфера
  • setFile(): установка пути к файлу
  • setFlushAfter(): установка порога сброса
  • setSizeLimit(): установка максимального размера файла
  • setFilesLimit(): установка максимального количества файлов

Конфигурация

Пример настроек:

$config = [
    'file' => 'c:\logs\my_log.log',
    'max_size' => 5242880,  // 5 МБ
    'max_files' => 3,
    'flush_threshold' => 3000
];

Примеры использования

// Создание обработчика
$formatter = new DefaultLogFormatter();
$handler = new BufferedRotatingFileHandler();
$handler->formatter = $formatter;
$handler->setFile('app.log');
$handler->setSizeLimit(1024 * 1024);  // 1 МБ
$handler->setFilesLimit(5);
$handler->setFlushAfter(100);  // 100 сообщений

// Обработка сообщения
$handler->handle(
    MessageType::INFO,
    'Операция выполнена',
    ['user_id' => 123]
);

Особенности реализации

  • Автоматическое управление файлами: ротация при достижении максимального размера
  • Буферизация: снижение нагрузки на файловую систему
  • Деструкторы: гарантированный сброс оставшихся записей
  • Гибкая конфигурация: через массив настроек

Рекомендации по использованию

  1. Настройка конфигурации:

    • Укажите корректный путь к файлу
    • Настройте оптимальный порог буферизации
    • Определите подходящий размер файлов
  2. Обработка ошибок:

    • Добавьте обработку исключений при работе с файлами
    • Проверьте права доступа к файлу лога

На главную | Содержание