Как правильно организовать структуру фабрики логгера?

Для логирования в проекте выбрал psr-3 совместимую библиотеку - Monolog (библиотека не имеет значения к вопросу).

Пока логи планирую записывать в файлы.
В дальнейшем, хотелось бы логи перенести в elasticsearch.

Библиотека Monolog - достаточно много конфигурации имеет, чтобы каждый раз не конфигурировать, хотелось бы создать Фабрику, которая будет создавать логгер, сконфигурированный по умолчанию (но при этом иметь возможность изменить конфиг, т.е. иметь доступ к самому объекту логгера-monolog).

Также, нужно, чтобы в будущем, я смог изменить конфиг логгера, чтобы записывать логи не в файл и в elastic.

Как можно создать такую фабрику ? Хотелось бы увидеть пример.
  • Вопрос задан
  • 329 просмотров
Пригласить эксперта
Ответы на вопрос 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Это один из примеров ситуации, когда использование синглтона может быть частично оправдано.

class LoggerFactory {
  static $instance = null;
  public static create() {
    if (!is_null(static::$instance)) {
      return static::$instance;
    }
     static::$instance = new Logger('name');
     // ну т.д.
     return static::$instance;  
 }
}

// используется вроде бы так
$logger = LoggerFactory::create();


Код я не проверял, но идея примерно такая.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽