/** * @param IfwPsn_Wp_Plugin_Manager $pm * @param \IfwPsn_Vendor_Zend_Log_FactoryInterface|\IfwPsn_Vendor_Zend_Log_FactoryInterface $writer * @param null $name Loggername * @return IfwPsn_Wp_Plugin_Logger */ public static function create(IfwPsn_Wp_Plugin_Manager $pm, IfwPsn_Vendor_Zend_Log_FactoryInterface $writer, $name = null) { if ($name === null) { $name = self::$_defaultName; } if (!isset(self::$_instances[$pm->getAbbr()][$name])) { // create logger $logger = new self($writer); $logger->setPluginManager($pm); $logger->setInternalName($name); self::$_instances[$pm->getAbbr()][$name] = $logger; } else { $logger = self::$_instances[$pm->getAbbr()][$name]; if (!$logger->hasWriter($writer)) { $logger->addWriter($writer); } } switch (get_class($writer)) { case 'IfwPsn_Zend_Log_Writer_WpDb': $logger->setTimestampFormat('Y-m-d H:i:s'); break; } return $logger; }