Horde_Log_Logger::log PHP Method

log() public method

Log a message at a level
public log ( mixed $event, integer $level = null )
$event mixed Message to log, either an array or a string.
$level integer Log level of message, required if $message is a string.
    public function log($event, $level = null)
    {
        if (empty($this->_handlers)) {
            throw new Horde_Log_Exception('No handlers were added');
        }
        // Create an event array from the given arguments.
        if (is_array($event)) {
            // If we are passed an array, it must contain 'message'
            // and 'level' indices.
            if (!isset($event['message'])) {
                throw new Horde_Log_Exception('Event array did not contain a message');
            }
            if (!isset($event['level'])) {
                if (is_null($level)) {
                    throw new Horde_Log_Exception('Event array did not contain a log level');
                }
                $event['level'] = $level;
            }
        } else {
            // Create an event array from the message and level
            // arguments.
            $event = array('message' => $event, 'level' => $level);
        }
        if (($level = array_search($event['level'], $this->_levels)) === false) {
            throw new Horde_Log_Exception('Bad log level: ' . $event['level']);
        }
        // Fill in the level name and timestamp for filters, formatters,
        // handlers.
        $event['levelName'] = $level;
        if (!isset($event['timestamp'])) {
            $event['timestamp'] = date('c');
        }
        // If any global filter rejects the event, don't log it.
        foreach ($this->_filters as $filter) {
            if (!$filter->accept($event)) {
                return;
            }
        }
        foreach ($this->_handlers as $handler) {
            $handler->log($event);
        }
    }

Usage Example

Example #1
0
 /**
  * Ends the benchmark and log the result.
  */
 public function end()
 {
     if ($this->_logger) {
         // Compute elapsed time and build message.
         $elapsed = microtime(true) - $this->_start;
         $message = sprintf('%s (%.5f)', $this->_message, $elapsed);
         // Log message (level may be specified as integer or string).
         if (is_integer($this->_level)) {
             $this->_logger->log($message, $this->_level);
         } else {
             $this->_logger->{$this->_level}($message);
         }
     }
 }
All Usage Examples Of Horde_Log_Logger::log