我正在尝试在包含启动页面,启动调用的Configuration类和许多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");
答案 0 :(得分:0)
您可以包装一些记录器方法,使它们更容易统一访问,如下所示:
Animator States
,然后将getLogger的访问修饰符更改为protected。