регистрация — лучший способ получить доступ к регистратору через приложение / веб-сайт в Stack Overflow

Я недавно прочитал PSR-3 и я заинтересован в том, чтобы узнать, как лучше всего подойти к реализации регистратора в веб-приложении или на веб-сайте. Я понимаю, как определяется регистратор и как его можно реализовать в соответствии с PSR-3, но как насчет доступа к ним или обращения к ним по всему приложению для различных нужд ведения журналов, таких как перехваченные исключения, заметные события и т. Д.?

Эти три варианта пришли на ум. Есть еще? Какой самый лучший подход?

  1. Глобальный объект — $logger->debug('foo')
  2. Глобальный статический экземпляр — Logger::debug('foo')
  3. с помощью какого-то метода — $app->getLogger()->debug('foo')
  4. …так далее…

Одним из моих соображений является сохранение кода, необходимого для ссылки на регистратор, как минимум. Например, вариант 3, описанный выше, выглядит довольно утомительным, чтобы извлекать регистратор, подобный этому, для каждого соответствующего перехваченного исключения, заметного события и т. Д. Во всем приложении.

0

Решение

Я предпочитаю получать регистратор путем внедрения зависимости для регистратора или вашего третьего варианта.

DI::getInstance()->get('logger')

Логгер по умолчанию легко заменить фиктивным для модульного тестирования или высокой производительностью один раз для производственной среды.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]