Монолог реализации в синглтоне - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь использовать монолог в приложении, которое содержит страницу запуска, класс конфигурации, вызываемый при запуске, и множество классов типов MVC.Попытка выяснить способ сделать регистрацию легко доступной.(Я прочитал this , что было полезно, и попытался (пока не удалось) понять DI. Но я закончил с этим, что-то вроде одиночки и, кажется, работает. Может кто-то указатьиз недостатков?

 class MxLogger
    {
        private static  $logger = null;  

         protected function __construct (){
            $name='f3.log';
            $logger = new Logger('f3');
            $logger->pushHandler(new StreamHandler(LOGPATH . "/$name", Logger::DEBUG));
            $logger->pushProcessor(new IntrospectionProcessor(LOGGER::DEBUG,['Configuration'],0));
            self::$logger = $logger;
        }

        public static function getLogger(){
            if (self::$logger === null ) {
                new MxLogger();
            }
            return self::$logger;
        }

    }

, а затем в других классах:

MxLogger::getlogger()->info("Testing on line 27");

1 Ответ

0 голосов
/ 20 августа 2019

Вы можете обернуть несколько методов ведения журнала, чтобы сделать их более легкими и равномерно доступными, например:

public static info($text) {    
    self::getLogger()->info($text)    
}

, а затем, возможно, изменить модификатор доступа getLogger на protected.

...