log.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 551 行 · 第 1/2 页
SVN-BASE
551 行
<?php/** * Zend Framework * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://framework.zend.com/license/new-bsd * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@zend.com so we can send you a copy immediately. * * @category Zend * @package Zend_Log * @copyright Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License *//** * Zend_Log_Adapter_Interface */require_once 'Zend/Log/Adapter/Interface.php';/** * Zend_Log_Adapter_Null */require_once 'Zend/Log/Adapter/Null.php';/** * Zend_Log_Exception */require_once 'Zend/Log/Exception.php';/** * @category Zend * @package Zend_Log * @copyright Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */class Zend_Log{ /** * Mask that includes all log levels */ const LEVEL_ALL = 255; /** * Log levels */ const LEVEL_DEBUG = 1; const LEVEL_INFO = 2; const LEVEL_WARNING = 4; const LEVEL_ERROR = 8; const LEVEL_SEVERE = 16; /** * This array contains the names of the log levels in order to support * logging the names of the log message level instead of its numeric value. * * @var array */ static protected $_levelNames = array( 1 => 'DEBUG', 2 => 'INFO', 4 => 'WARNING', 8 => 'ERROR', 16 => 'SEVERE' ); /** * The static class Zend_Log holds an array of Zend_Log instances * in this variable that are created with registerLogger(). * * @var array */ static private $_instances = array(); /** * The static class Zend_Log holds an array of Zend_Log instances * in this variable that are created with registerLogger(). * * @var array */ static private $_defaultLogName = 'LOG'; /** * When this class is instantiated by registerLogger, it is * pushed onto the $_instances associative array. The $_logName * is the key to instance in this array, and also how the user * will specify the instance when using the other static method * calls (e.g. Zend_Log::log() ). * * @var string */ protected $_logName = ''; /** * Logging level mask, the bitwise OR of any of the * Zend_Log::LEVEL_* constants that will be logged by this * instance of Zend_Log. All other levels will be ignored. * * @var integer */ protected $_levelMask = self::LEVEL_ALL; /** * Every instance of Zend_Log must contain a child object which * is an implementation of Zend_Log_Adapter that provides the log * storage. * * @var Zend_Log_Adapter_Interface */ protected $_adapter = null; /** * A string which is automatically prefixed to any message sent * to the Zend_Log::log() method. * * @var string */ protected $_messagePrefix = ''; /** * A string which is automatically appended to any message sent * to the Zend_Log::log() method. * * @var string */ protected $_messageSuffix = ''; /** * Array of available fields for logging * * @var array */ protected $_fields = array('message' => '', 'level' => ''); /** * Class constructor. Zend_Log uses the singleton pattern. Only * a single Zend_Log static class may be used, however instances * of Zend_Log may be stored inside the Zend_Log static class by * calling registerLogger(). * * @param string $logName Name of the Zend_Log instance, which * will be the key to the Zend_Log::$_instances array. * * @param Zend_Log_Adapter_Interface $adapter */ private function __construct($logName, Zend_Log_Adapter_Interface $adapter) { $this->_adapter = $adapter; $this->_adapter->logName = $logName; } /** * Returns the instance of Zend_Log in the Zend_Log::$_instances * array. * * @param logName $logName Key in the Zend_Log::$_instances associative array. * @throws Zend_Log_Exception * @return Zend_Log_Adapter_Interface */ private static function _getInstance($logName = null) { if (is_null($logName)) { $logName = self::$_defaultLogName; } if (!self::hasLogger($logName)) { throw new Zend_Log_Exception("No instance of log named \"$logName\""); } return self::$_instances[$logName]; } /** * Instantiates a new instance of Zend_Log carrying the supplied Zend_Log_Adapter_Interface and stores * it in the $_instances array. * * @param Zend_Log_Adapter_Interface $logAdapter Log adapter implemented from Zend_Log_Adapter_Interface * @param string $logName Name of this instance, used to access it from other static functions. * @throws Zend_Log_Exception * @return boolean True */ public static function registerLogger(Zend_Log_Adapter_Interface $logAdapter, $logName=null) { if (is_null($logName)) { $logName = self::$_defaultLogName; } /* @var $log Zend_Log */ if (!self::hasLogger($logName)) { self::$_instances[$logName] = new Zend_Log($logName, $logAdapter); } else { throw new Zend_Log_Exception("Cannot register, \"$logName\" already exists."); } return true; } /** * Destroys an instance of Zend_Log in the $_instances array that was added by registerLogger() * * @param string $logName Name of this instance, used to access it from other static functions. * @throws Zend_Log_Exception * @return boolean True */ public static function unregisterLogger($logName = null) { if (is_null($logName)) { $logName = self::$_defaultLogName; } if (!self::hasLogger($logName)) { throw new Zend_Log_Exception("Cannot unregister, no instance of log named \"$logName\"."); } unset(self::$_instances[$logName]); return true; } /** * Returns True if the specified logName is a registered logger. If no logName is supplied, * the function returns True if at least one logger exists. * * @param string $logName Name of registered logger to check, or null. * @return boolean Registered logger? */ public static function hasLogger($logName = null) { if (!is_null($logName)) { return isset(self::$_instances[$logName]); } return sizeof(self::$_instances) > 0; } /** * Returns information about the registered loggers. * * array(2) { * ["LOG"]=> array key is the logger name * array(2) { * ["adapter"]=> string, name of the Zend_Log_AdapterClass class * ["default"]=> boolean, is this the default logger? * } * } * * @return array Is there at least one registered logger? */ public static function getLoggerInfo() { if (!self::hasLogger()) { return false; } $loggerInfo = array(); foreach (self::$_instances as $logName => $logger) { $loggerInfo[$logName]['adapter'] = get_class($logger->_adapter); $loggerInfo[$logName]['default'] = ($logName == self::$_defaultLogName); } return $loggerInfo; }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?