composite.php

来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 197 行

PHP
197
字号
<?php/** * $Header: /repository/pear/Log/Log/composite.php,v 1.23 2004/08/09 06:04:11 jon Exp $ * $Horde: horde/lib/Log/composite.php,v 1.2 2000/06/28 21:36:13 jon Exp $ * * @version $Revision: 1.23 $ * @package Log *//** * The Log_composite:: class implements a Composite pattern which * allows multiple Log implementations to receive the same events. * * @author  Chuck Hagenbuch <chuck@horde.org> * @author  Jon Parise <jon@php.net> * * @since Horde 1.3 * @since Log 1.0 * @package Log * * @example composite.php   Using the composite handler. */class Log_composite extends Log{    /**     * Array holding all of the Log instances to which log events should be     * sent.     *     * @var array     * @access private     */    var $_children = array();    /**     * Constructs a new composite Log object.     *     * @param boolean   $name       This parameter is ignored.     * @param boolean   $ident      This parameter is ignored.     * @param boolean   $conf       This parameter is ignored.     * @param boolean   $level      This parameter is ignored.     *     * @access public     */    function Log_composite($name = false, $ident = false, $conf = false,                           $level = PEAR_LOG_DEBUG)    {    }    /**     * Opens the child connections.     *     * @access public     */    function open()    {        if (!$this->_opened) {            foreach ($this->_children as $id => $child) {                $this->_children[$id]->open();            }            $this->_opened = true;        }    }    /**     * Closes any child instances.     *     * @access public     */    function close()    {        if ($this->_opened) {            foreach ($this->_children as $id => $child) {                $this->_children[$id]->close();            }            $this->_opened = false;        }    }    /**     * Flushes all open child instances.     *     * @access public     * @since Log 1.8.2     */    function flush()    {        if ($this->_opened) {            foreach ($this->_children as $id => $child) {                $this->_children[$id]->flush();            }        }    }    /**     * Sends $message and $priority to each child of this composite.     *     * @param mixed     $message    String or object containing the message     *                              to log.     * @param string    $priority   (optional) The priority of the message.     *                              Valid values are: PEAR_LOG_EMERG,     *                              PEAR_LOG_ALERT, PEAR_LOG_CRIT,     *                              PEAR_LOG_ERR, PEAR_LOG_WARNING,     *                              PEAR_LOG_NOTICE, PEAR_LOG_INFO, and     *                              PEAR_LOG_DEBUG.     *     * @return boolean  True if the entry is successfully logged.     *     * @access public     */    function log($message, $priority = null)    {        /* If a priority hasn't been specified, use the default value. */        if ($priority === null) {            $priority = $this->_priority;        }        foreach ($this->_children as $id => $child) {            $this->_children[$id]->log($message, $priority);        }        $this->_announce(array('priority' => $priority, 'message' => $message));        return true;    }    /**     * Returns true if this is a composite.     *     * @return boolean  True if this is a composite class.     *     * @access public     */    function isComposite()    {        return true;    }    /**     * Sets this identification string for all of this composite's children.     *     * @param string    $ident      The new identification string.     *     * @access public     * @since  Log 1.6.7     */    function setIdent($ident)    {        foreach ($this->_children as $id => $child) {            $this->_children[$id]->setIdent($ident);        }    }    /**     * Adds a Log instance to the list of children.     *     * @param object    $child      The Log instance to add.     *     * @return boolean  True if the Log instance was successfully added.     *     * @access public     */    function addChild(&$child)    {        /* Make sure this is a Log instance. */        if (!is_a($child, 'Log')) {            return false;        }        $this->_children[$child->_id] = &$child;        return true;    }    /**     * Removes a Log instance from the list of children.     *     * @param object    $child      The Log instance to remove.     *     * @return boolean  True if the Log instance was successfully removed.     *     * @access public     */    function removeChild($child)    {        if (!is_a($child, 'Log') || !isset($this->_children[$child->_id])) {            return false;        }        unset($this->_children[$child->_id]);        return true;    }}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?