私は最近PSR-3
、Web アプリケーションまたは Web サイト全体でロガーの実装にアプローチする最良の方法について読んで興味を持っています。ロガーがどのように定義され、PSR-3 ごとにどのように実装できるかは理解していますが、キャッチされた例外、重要なイベントなどのさまざまなログのニーズのために、アプリケーション全体でそれらにアクセス/参照することはどうですか?
この3つの選択肢が頭に浮かびました。もうありますか?最適なアプローチはどれですか?
- グローバル オブジェクト -
$logger->debug('foo')
- グローバル静的インスタンス -
Logger::debug('foo')
- 何らかの方法で -
$app->getLogger()->debug('foo')
- ...等...
私の考慮事項の 1 つは、ロガーを参照するために必要なコードを最小限に抑えることです。たとえば、上記のオプション 3 では、アプリケーション全体で適切にキャッチされた例外、注目すべきイベントなどごとにロガーを取得するのはかなり面倒に思えます。