log.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 636 行 · 第 1/2 页
SVN-BASE
636 行
<?php/** * $Header$ * $Horde: horde/lib/Log.php,v 1.15 2000/06/29 23:39:45 jon Exp $ * * @version $Revision$ * @package Log */define('PEAR_LOG_EMERG', 0); /** System is unusable */define('PEAR_LOG_ALERT', 1); /** Immediate action required */define('PEAR_LOG_CRIT', 2); /** Critical conditions */define('PEAR_LOG_ERR', 3); /** Error conditions */define('PEAR_LOG_WARNING', 4); /** Warning conditions */define('PEAR_LOG_NOTICE', 5); /** Normal but significant */define('PEAR_LOG_INFO', 6); /** Informational */define('PEAR_LOG_DEBUG', 7); /** Debug-level messages */define('PEAR_LOG_ALL', bindec('11111111')); /** All messages */define('PEAR_LOG_NONE', bindec('00000000')); /** No message *//* Log types for PHP's native error_log() function. */define('PEAR_LOG_TYPE_SYSTEM', 0); /** Use PHP's system logger */define('PEAR_LOG_TYPE_MAIL', 1); /** Use PHP's mail() function */define('PEAR_LOG_TYPE_DEBUG', 2); /** Use PHP's debugging connection */define('PEAR_LOG_TYPE_FILE', 3); /** Append to a file *//** * The Log:: class implements both an abstraction for various logging * mechanisms and the Subject end of a Subject-Observer pattern. * * @author Chuck Hagenbuch <chuck@horde.org> * @author Jon Parise <jon@php.net> * @since Horde 1.3 * @package Log */class Log{ /** * Indicates whether or not the log can been opened / connected. * * @var boolean * @access private */ var $_opened = false; /** * Instance-specific unique identification number. * * @var integer * @access private */ var $_id = 0; /** * The label that uniquely identifies this set of log messages. * * @var string * @access private */ var $_ident = ''; /** * The default priority to use when logging an event. * * @var integer * @access private */ var $_priority = PEAR_LOG_INFO; /** * The bitmask of allowed log levels. * @var integer * @access private */ var $_mask = PEAR_LOG_ALL; /** * Holds all Log_observer objects that wish to be notified of new messages. * * @var array * @access private */ var $_listeners = array(); /** * Attempts to return a concrete Log instance of type $handler. * * @param string $handler The type of concrete Log subclass to return. * Attempt to dynamically include the code for * this subclass. Currently, valid values are * 'console', 'syslog', 'sql', 'file', and 'mcal'. * * @param string $name The name of the actually log file, table, or * other specific store to use. Defaults to an * empty string, with which the subclass will * attempt to do something intelligent. * * @param string $ident The identity reported to the log system. * * @param array $conf A hash containing any additional configuration * information that a subclass might need. * * @param int $level Log messages up to and including this level. * * @return object Log The newly created concrete Log instance, or an * false on an error. * @access public * @since Log 1.0 */ function &factory($handler, $name = '', $ident = '', $conf = array(), $level = PEAR_LOG_DEBUG) { $handler = strtolower($handler); $class = 'Log_' . $handler; $classfile = 'Log/' . $handler . '.php'; /* * Attempt to include our version of the named class, but don't treat * a failure as fatal. The caller may have already included their own * version of the named class. */ @include_once $classfile; /* If the class exists, return a new instance of it. */ if (class_exists($class)) { return new $class($name, $ident, $conf, $level); } return false; } /** * Attempts to return a reference to a concrete Log instance of type * $handler, only creating a new instance if no log instance with the same * parameters currently exists. * * You should use this if there are multiple places you might create a * logger, you don't want to create multiple loggers, and you don't want to * check for the existance of one each time. The singleton pattern does all * the checking work for you. * * <b>You MUST call this method with the $var = &Log::singleton() syntax. * Without the ampersand (&) in front of the method name, you will not get * a reference, you will get a copy.</b> * * @param string $handler The type of concrete Log subclass to return. * Attempt to dynamically include the code for * this subclass. Currently, valid values are * 'console', 'syslog', 'sql', 'file', and 'mcal'. * * @param string $name The name of the actually log file, table, or * other specific store to use. Defaults to an * empty string, with which the subclass will * attempt to do something intelligent. * * @param string $ident The identity reported to the log system. * * @param array $conf A hash containing any additional configuration * information that a subclass might need. * * @param int $level Log messages up to and including this level. * * @return object Log The newly created concrete Log instance, or an * false on an error. * @access public * @since Log 1.0 */ function &singleton($handler, $name = '', $ident = '', $conf = array(), $level = PEAR_LOG_DEBUG) { static $instances; if (!isset($instances)) $instances = array(); $signature = serialize(array($handler, $name, $ident, $conf, $level)); if (!isset($instances[$signature])) { $instances[$signature] = &Log::factory($handler, $name, $ident, $conf, $level); } return $instances[$signature]; } /** * Abstract implementation of the open() method. * @since Log 1.0 */ function open() { return false; } /** * Abstract implementation of the close() method. * @since Log 1.0 */ function close() { return false; } /** * Abstract implementation of the flush() method. * @since Log 1.8.2 */ function flush() { return false; } /** * Abstract implementation of the log() method. * @since Log 1.0 */ function log($message, $priority = null) { return false; } /** * A convenience function for logging a emergency event. It will log a * message at the PEAR_LOG_EMERG log level. * * @param mixed $message String or object containing the message * to log. * * @return boolean True if the message was successfully logged. * * @access public * @since Log 1.7.0 */ function emerg($message) { return $this->log($message, PEAR_LOG_EMERG); } /** * A convenience function for logging an alert event. It will log a * message at the PEAR_LOG_ALERT log level. * * @param mixed $message String or object containing the message * to log. * * @return boolean True if the message was successfully logged. * * @access public * @since Log 1.7.0 */ function alert($message) { return $this->log($message, PEAR_LOG_ALERT); } /** * A convenience function for logging a critical event. It will log a * message at the PEAR_LOG_CRIT log level. * * @param mixed $message String or object containing the message * to log. * * @return boolean True if the message was successfully logged. * * @access public * @since Log 1.7.0 */ function crit($message) { return $this->log($message, PEAR_LOG_CRIT); } /** * A convenience function for logging a error event. It will log a * message at the PEAR_LOG_ERR log level. * * @param mixed $message String or object containing the message * to log. * * @return boolean True if the message was successfully logged. * * @access public * @since Log 1.7.0 */ function err($message) { return $this->log($message, PEAR_LOG_ERR); } /** * A convenience function for logging a warning event. It will log a * message at the PEAR_LOG_WARNING log level. * * @param mixed $message String or object containing the message * to log. * * @return boolean True if the message was successfully logged. * * @access public * @since Log 1.7.0 */ function warning($message) { return $this->log($message, PEAR_LOG_WARNING); } /** * A convenience function for logging a notice event. It will log a * message at the PEAR_LOG_NOTICE log level. * * @param mixed $message String or object containing the message * to log. * * @return boolean True if the message was successfully logged. * * @access public * @since Log 1.7.0 */ function notice($message)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?