[ Index ]
 

Code source de SPIP Agora 1.4

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/Pear/Log/ -> composite.php (source)

   1  <?php
   2  /**
   3   * $Header: /repository/pear/Log/Log/composite.php,v 1.23 2004/08/09 06:04:11 jon Exp $
   4   * $Horde: horde/lib/Log/composite.php,v 1.2 2000/06/28 21:36:13 jon Exp $
   5   *
   6   * @version $Revision: 1.23 $
   7   * @package Log
   8   */
   9  
  10  /**
  11   * The Log_composite:: class implements a Composite pattern which
  12   * allows multiple Log implementations to receive the same events.
  13   *
  14   * @author  Chuck Hagenbuch <chuck@horde.org>
  15   * @author  Jon Parise <jon@php.net>
  16   *
  17   * @since Horde 1.3
  18   * @since Log 1.0
  19   * @package Log
  20   *
  21   * @example composite.php   Using the composite handler.
  22   */
  23  class Log_composite extends Log
  24  {
  25      /**
  26       * Array holding all of the Log instances to which log events should be
  27       * sent.
  28       *
  29       * @var array
  30       * @access private
  31       */
  32      var $_children = array();
  33  
  34  
  35      /**
  36       * Constructs a new composite Log object.
  37       *
  38       * @param boolean   $name       This parameter is ignored.
  39       * @param boolean   $ident      This parameter is ignored.
  40       * @param boolean   $conf       This parameter is ignored.
  41       * @param boolean   $level      This parameter is ignored.
  42       *
  43       * @access public
  44       */
  45      function Log_composite($name = false, $ident = false, $conf = false,
  46                             $level = PEAR_LOG_DEBUG)
  47      {
  48      }
  49  
  50      /**
  51       * Opens the child connections.
  52       *
  53       * @access public
  54       */
  55      function open()
  56      {
  57          if (!$this->_opened) {
  58              foreach ($this->_children as $id => $child) {
  59                  $this->_children[$id]->open();
  60              }
  61              $this->_opened = true;
  62          }
  63      }
  64  
  65      /**
  66       * Closes any child instances.
  67       *
  68       * @access public
  69       */
  70      function close()
  71      {
  72          if ($this->_opened) {
  73              foreach ($this->_children as $id => $child) {
  74                  $this->_children[$id]->close();
  75              }
  76              $this->_opened = false;
  77          }
  78      }
  79  
  80      /**
  81       * Flushes all open child instances.
  82       *
  83       * @access public
  84       * @since Log 1.8.2
  85       */
  86      function flush()
  87      {
  88          if ($this->_opened) {
  89              foreach ($this->_children as $id => $child) {
  90                  $this->_children[$id]->flush();
  91              }
  92          }
  93      }
  94  
  95      /**
  96       * Sends $message and $priority to each child of this composite.
  97       *
  98       * @param mixed     $message    String or object containing the message
  99       *                              to log.
 100       * @param string    $priority   (optional) The priority of the message.
 101       *                              Valid values are: PEAR_LOG_EMERG,
 102       *                              PEAR_LOG_ALERT, PEAR_LOG_CRIT,
 103       *                              PEAR_LOG_ERR, PEAR_LOG_WARNING,
 104       *                              PEAR_LOG_NOTICE, PEAR_LOG_INFO, and
 105       *                              PEAR_LOG_DEBUG.
 106       *
 107       * @return boolean  True if the entry is successfully logged.
 108       *
 109       * @access public
 110       */
 111      function log($message, $priority = null)
 112      {
 113          /* If a priority hasn't been specified, use the default value. */
 114          if ($priority === null) {
 115              $priority = $this->_priority;
 116          }
 117  
 118          foreach ($this->_children as $id => $child) {
 119              $this->_children[$id]->log($message, $priority);
 120          }
 121  
 122          $this->_announce(array('priority' => $priority, 'message' => $message));
 123  
 124          return true;
 125      }
 126  
 127      /**
 128       * Returns true if this is a composite.
 129       *
 130       * @return boolean  True if this is a composite class.
 131       *
 132       * @access public
 133       */
 134      function isComposite()
 135      {
 136          return true;
 137      }
 138  
 139      /**
 140       * Sets this identification string for all of this composite's children.
 141       *
 142       * @param string    $ident      The new identification string.
 143       *
 144       * @access public
 145       * @since  Log 1.6.7
 146       */
 147      function setIdent($ident)
 148      {
 149          foreach ($this->_children as $id => $child) {
 150              $this->_children[$id]->setIdent($ident);
 151          }
 152      }
 153  
 154      /**
 155       * Adds a Log instance to the list of children.
 156       *
 157       * @param object    $child      The Log instance to add.
 158       *
 159       * @return boolean  True if the Log instance was successfully added.
 160       *
 161       * @access public
 162       */
 163      function addChild(&$child)
 164      {
 165          /* Make sure this is a Log instance. */
 166          if (!is_a($child, 'Log')) {
 167              return false;
 168          }
 169  
 170          $this->_children[$child->_id] = &$child;
 171  
 172          return true;
 173      }
 174  
 175      /**
 176       * Removes a Log instance from the list of children.
 177       *
 178       * @param object    $child      The Log instance to remove.
 179       *
 180       * @return boolean  True if the Log instance was successfully removed.
 181       *
 182       * @access public
 183       */
 184      function removeChild($child)
 185      {
 186          if (!is_a($child, 'Log') || !isset($this->_children[$child->_id])) {
 187              return false;
 188          }
 189  
 190          unset($this->_children[$child->_id]);
 191  
 192          return true;
 193      }
 194  }
 195  
 196  ?>


Généré le : Sat Feb 24 14:40:03 2007 par Balluche grâce à PHPXref 0.7