log_handlers/BufferedFileHandler.md


Класс BufferedFileHandler

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

Описание

Класс реализует обработчик системы журналирования для вывода в файл с буферизацией. Позволяет накапливать записи в памяти и сбрасывать их в файл при достижении заданного порога.

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

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

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

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

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

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

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

Пример конфигурации

$config = [
    'file' => 'c:\logs\my_log.log',
    'flush_threshold' => 3000
];

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

// Создание обработчика
$formatter = new DefaultLogFormatter();
$handler = new BufferedFileHandler();
$handler->formatter = $formatter;
$handler->setFile('app.log');
$handler->setFlushAfter(1000);

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

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

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

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

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

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

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

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