2016-10-27 7 views
0

私は最近、PSR-3を読んで、ウェブアプリケーションやウェブサイト上でロガーの実装に近づく最良の方法について知りたいと考えています。私はロガーがどのように定義され、どのようにPSR-3ごとにどのように実装できるのか理解していますが、キャッチされた例外、注目すべきイベントなどさまざまなロギングのニーズに合わせて、PHPのアプリケーション/ウェブサイトでロガーにアクセスする最善の方法

これらの3つのオプションが思い浮かびました。それ以上はありますか?どのアプローチが最適ですか?

  1. グローバルオブジェクト - $logger->debug('foo')
  2. グローバル静的インスタンス - Logger::debug('foo')
  3. 方法のいくつかの種類を介した - $app->getLogger()->debug('foo')
  4. ...等...私の配慮の

一つが維持されますロガーを最小限に参照するために必要なコードたとえば、上記のオプション3は、アプリケーション全体で適切なキャッチされた例外、注目すべきイベントなどのために、そのようなロガーを検索するのがむしろ面倒になるようです。

答えて

0

私はロガーまたは3番目のオプションの依存性注入によってロガーを取得することをお勧めします。

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

デフォルトのロガーを単体テスト用のダミーや実稼働環境用の高性能のものに置き換えるのは簡単です。

+0

ご回答ありがとうございます。私は、依存性注入の利点と、異なるロガーを交換するのは容易だが、一方で、適用可能なキャッチされた例外/イベントごとにこの方法でロガーにアクセスしないと少し冗長になるだろうか? – reformed

関連する問題