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

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

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

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

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

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

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();


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

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

Войти через центр авторизации
Похожие вопросы
DANYCOM Краснодар
от 50 000 до 100 000 ₽
ЧИТАЙ-ГОРОД Москва
от 140 000 до 210 000 ₽
Amigoweb Магнитогорск
от 50 000 до 70 000 ₽
29 мар. 2020, в 16:22
3000 руб./за проект
29 мар. 2020, в 14:51
999999 руб./за проект