diff -r 5e7a0fedabdf -r 877f952ae2bd web/lib/Zend/Log.php --- a/web/lib/Zend/Log.php Thu Mar 21 17:31:31 2013 +0100 +++ b/web/lib/Zend/Log.php Thu Mar 21 19:50:53 2013 +0100 @@ -14,17 +14,17 @@ * * @category Zend * @package Zend_Log - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Log.php 22976 2010-09-19 11:57:26Z intiilapa $ + * @version $Id: Log.php 25131 2012-11-16 15:29:18Z rob $ */ /** * @category Zend * @package Zend_Log - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Log.php 22976 2010-09-19 11:57:26Z intiilapa $ + * @version $Id: Log.php 25131 2012-11-16 15:29:18Z rob $ */ class Zend_Log { @@ -72,6 +72,12 @@ /** * + * @var string + */ + protected $_defaultFormatterNamespace = 'Zend_Log_Formatter'; + + /** + * * @var callback */ protected $_origErrorHandler = null; @@ -84,7 +90,7 @@ /** * - * @var array + * @var array|boolean */ protected $_errorHandlerMap = false; @@ -98,6 +104,7 @@ * Class constructor. Create a new logger * * @param Zend_Log_Writer_Abstract|null $writer default writer + * @return void */ public function __construct(Zend_Log_Writer_Abstract $writer = null) { @@ -115,6 +122,7 @@ * * @param array|Zend_Config Array or instance of Zend_Config * @return Zend_Log + * @throws Zend_Log_Exception */ static public function factory($config = array()) { @@ -130,6 +138,13 @@ $log = new self; + if (array_key_exists('timestampFormat', $config)) { + if (null != $config['timestampFormat'] && '' != $config['timestampFormat']) { + $log->setTimestampFormat($config['timestampFormat']); + } + unset($config['timestampFormat']); + } + if (!is_array(current($config))) { $log->addWriter(current($config)); } else { @@ -147,6 +162,7 @@ * * @param array $spec config array with writer spec * @return Zend_Log_Writer_Abstract + * @throws Zend_Log_Exception */ protected function _constructWriterFromConfig($config) { @@ -166,6 +182,11 @@ $writer->addFilter($filter); } + if (isset($config['formatterName'])) { + $formatter = $this->_constructFormatterFromConfig($config); + $writer->setFormatter($formatter); + } + return $writer; } @@ -174,6 +195,7 @@ * * @param array|Zend_Config $config Zend_Config or Array * @return Zend_Log_Filter_Interface + * @throws Zend_Log_Exception */ protected function _constructFilterFromConfig($config) { @@ -191,6 +213,29 @@ return $filter; } + /** + * Construct formatter object from configuration array or Zend_Config object + * + * @param array|Zend_Config $config Zend_Config or Array + * @return Zend_Log_Formatter_Interface + * @throws Zend_Log_Exception + */ + protected function _constructFormatterFromConfig($config) + { + $formatter = $this->_constructFromConfig('formatter', $config, $this->_defaultFormatterNamespace); + + if (!$formatter instanceof Zend_Log_Formatter_Interface) { + $formatterName = is_object($formatter) + ? get_class($formatter) + : 'The specified formatter'; + /** @see Zend_Log_Exception */ + require_once 'Zend/Log/Exception.php'; + throw new Zend_Log_Exception($formatterName . ' does not implement Zend_Log_Formatter_Interface'); + } + + return $formatter; + } + /** * Construct a filter or writer from config * @@ -198,6 +243,7 @@ * @param mixed $config Zend_Config or Array * @param string $namespace * @return object + * @throws Zend_Log_Exception */ protected function _constructFromConfig($type, $config, $namespace) { @@ -223,7 +269,7 @@ if (!$reflection->implementsInterface('Zend_Log_FactoryInterface')) { require_once 'Zend/Log/Exception.php'; throw new Zend_Log_Exception( - 'Driver does not implement Zend_Log_FactoryInterface and can not be constructed from config.' + $className . ' does not implement Zend_Log_FactoryInterface and can not be constructed from config.' ); } @@ -237,22 +283,33 @@ * @param string $type filter|writer * @param string $defaultNamespace * @return string full classname + * @throws Zend_Log_Exception */ protected function getClassName($config, $type, $defaultNamespace) { - if (!isset($config[ $type . 'Name' ])) { + if (!isset($config[$type . 'Name'])) { require_once 'Zend/Log/Exception.php'; throw new Zend_Log_Exception("Specify {$type}Name in the configuration array"); } - $className = $config[ $type . 'Name' ]; + $className = $config[$type . 'Name']; $namespace = $defaultNamespace; - if (isset($config[ $type . 'Namespace' ])) { - $namespace = $config[ $type . 'Namespace' ]; + + if (isset($config[$type . 'Namespace'])) { + $namespace = $config[$type . 'Namespace']; } - $fullClassName = $namespace . '_' . $className; - return $fullClassName; + // PHP >= 5.3.0 namespace given? + if (substr($namespace, -1) == '\\') { + return $namespace . $className; + } + + // emtpy namespace given? + if (strlen($namespace) === 0) { + return $className; + } + + return $namespace . '_' . $className; } /** @@ -261,7 +318,7 @@ * @param string $message Message to log * @param integer $priority Priority of message * @return array Event array - **/ + */ protected function _packEvent($message, $priority) { return array_merge(array( @@ -387,7 +444,7 @@ * * @param string $name Name of priority * @param integer $priority Numeric priority - * @throws Zend_Log_InvalidArgumentException + * @throws Zend_Log_Exception */ public function addPriority($name, $priority) { @@ -410,12 +467,13 @@ * Before a message will be received by any of the writers, it * must be accepted by all filters added with this method. * - * @param int|Zend_Log_Filter_Interface $filter - * @return void + * @param int|Zend_Config|array|Zend_Log_Filter_Interface $filter + * @return Zend_Log + * @throws Zend_Log_Exception */ public function addFilter($filter) { - if (is_integer($filter)) { + if (is_int($filter)) { /** @see Zend_Log_Filter_Priority */ require_once 'Zend/Log/Filter/Priority.php'; $filter = new Zend_Log_Filter_Priority($filter); @@ -438,7 +496,7 @@ * message and writing it out to storage. * * @param mixed $writer Zend_Log_Writer_Abstract or Config array - * @return void + * @return Zend_Log */ public function addWriter($writer) { @@ -462,9 +520,9 @@ /** * Set an extra item to pass to the log writers. * - * @param $name Name of the field - * @param $value Value of the field - * @return void + * @param string $name Name of the field + * @param string $value Value of the field + * @return Zend_Log */ public function setEventItem($name, $value) { @@ -491,7 +549,7 @@ { // Only register once. Avoids loop issues if it gets registered twice. if ($this->_registeredErrorHandler) { - return $this; + return $this; } $this->_origErrorHandler = set_error_handler(array($this, 'errorHandler')); @@ -537,7 +595,7 @@ { $errorLevel = error_reporting(); - if ($errorLevel && $errno) { + if ($errorLevel & $errno) { if (isset($this->_errorHandlerMap[$errno])) { $priority = $this->_errorHandlerMap[$errno]; } else {