芝麻web文件管理V1.00
编辑当前文件:/home/prismawe/www/system/classes/kohana/log.php
attach($writer); * * @param object Log_Writer instance * @param mixed array of messages levels to write OR max level to write * @param integer min level to write IF $levels is not an array * @return Log */ public function attach(Log_Writer $writer, $levels = array(), $min_level = 0) { if ( ! is_array($levels)) { $levels = range($min_level, $levels); } $this->_writers["{$writer}"] = array ( 'object' => $writer, 'levels' => $levels ); return $this; } /** * Detaches a log writer. The same writer object must be used. * * $log->detach($writer); * * @param object Log_Writer instance * @return Log */ public function detach(Log_Writer $writer) { // Remove the writer unset($this->_writers["{$writer}"]); return $this; } /** * Adds a message to the log. Replacement values must be passed in to be * replaced using [strtr](http://php.net/strtr). * * $log->add(Log::ERROR, 'Could not locate user: :user', array( * ':user' => $username, * )); * * @param string level of message * @param string message body * @param array values to replace in the message * @return Log */ public function add($level, $message, array $values = NULL) { if ($values) { // Insert the values into the message $message = strtr($message, $values); } // Create a new message and timestamp it $this->_messages[] = array ( 'time' => Date::formatted_time('now', Log::$timestamp, Log::$timezone), 'level' => $level, 'body' => $message, ); if (Log::$write_on_add) { // Write logs as they are added $this->write(); } return $this; } /** * Write and clear all of the messages. * * $log->write(); * * @return void */ public function write() { if (empty($this->_messages)) { // There is nothing to write, move along return; } // Import all messages locally $messages = $this->_messages; // Reset the messages array $this->_messages = array(); foreach ($this->_writers as $writer) { if (empty($writer['levels'])) { // Write all of the messages $writer['object']->write($messages); } else { // Filtered messages $filtered = array(); foreach ($messages as $message) { if (in_array($message['level'], $writer['levels'])) { // Writer accepts this kind of message $filtered[] = $message; } } // Write the filtered messages $writer['object']->write($filtered); } } } } // End Kohana_Log