我最近阅读PSR-3
并有兴趣了解在 Web 应用程序或网站上实现记录器的最佳方法。我了解如何定义记录器以及如何根据 PSR-3 实现它们,但是如何在应用程序中访问/引用它们以满足各种记录需求,例如捕获的异常、显着事件等?
这三个选项浮现在脑海中。还有吗?哪个是最好的方法?
- 全局对象 -
$logger->debug('foo')
- 全局静态实例 -
Logger::debug('foo')
- 通过某种方法——
$app->getLogger()->debug('foo')
- ...ETC...
我的考虑之一是将引用记录器所需的代码保持在最低限度。例如,上面的选项 3 似乎在整个应用程序中为每个适当的捕获异常、显着事件等检索记录器会变得相当乏味。