From 6845c00a3f752abecd9ef763848329bceaf63df4 Mon Sep 17 00:00:00 2001 From: xue <> Date: Fri, 31 Mar 2006 12:42:22 +0000 Subject: Reorganized folders under framework. This may break existing applications. --- framework/Log/TLogger.php | 130 ---------------------------------------------- 1 file changed, 130 deletions(-) delete mode 100644 framework/Log/TLogger.php (limited to 'framework/Log/TLogger.php') diff --git a/framework/Log/TLogger.php b/framework/Log/TLogger.php deleted file mode 100644 index 2eff5568..00000000 --- a/framework/Log/TLogger.php +++ /dev/null @@ -1,130 +0,0 @@ - - * @link http://www.pradosoft.com/ - * @copyright Copyright © 2005 PradoSoft - * @license http://www.pradosoft.com/license/ - * @version $Revision: $ $Date: $ - * @package System.Log - */ - -/** - * TLogger class. - * - * TLogger records log messages in memory and implements the methods to - * retrieve the messages with filter conditions, including log levels and - * log categories. - * - * @author Qiang Xue - * @version $Revision: $ $Date: $ - * @package System.Log - * @since 3.0 - */ -class TLogger extends TComponent -{ - /** - * Log levels. - */ - const DEBUG=0x01; - const INFO=0x02; - const NOTICE=0x04; - const WARNING=0x08; - const ERROR=0x10; - const ALERT=0x20; - const FATAL=0x40; - /** - * @var array log messages - */ - private $_logs=array(); - /** - * @var integer log levels (bits) to be filtered - */ - private $_levels; - /** - * @var array list of categories to be filtered - */ - private $_categories; - - /** - * Logs a message. - * Messages logged by this method may be retrieved via {@link getLogs}. - * @param string message to be logged - * @param integer level of the message. Valid values include - * TLogger::DEBUG, TLogger::INFO, TLogger::NOTICE, TLogger::WARNING, - * TLogger::ERROR, TLogger::ALERT, TLogger::FATAL. - * @param string category of the message - */ - public function log($message,$level,$category='Uncategorized') - { - $this->_logs[]=array($message,$level,$category,microtime(true)); - } - - /** - * Retrieves log messages. - * Messages may be filtered by log levels and/or categories. - * A level filter is specified by an integer, whose bits indicate the levels interested. - * For example, (TLogger::INFO | TLogger::WARNING) specifies INFO and WARNING levels. - * A category filter is specified by concatenating interested category names - * with commas. A message whose category name starts with any filtering category - * will be returned. For example, a category filter 'System.Web, System.IO' - * will return messages under categories such as 'System.Web', 'System.IO', - * 'System.Web.UI', 'System.Web.UI.WebControls', etc. - * Level filter and category filter are combinational, i.e., only messages - * satisfying both filter conditions will they be returned. - * @param integer level filter - * @param string category filter - * @param array list of messages. Each array elements represents one message - * with the following structure: - * array( - * [0] => message - * [1] => level - * [2] => category - * [3] => timestamp); - */ - public function getLogs($levels=null,$categories=null) - { - $this->_levels=$levels; - $this->_categories=$categories; - if(empty($levels) && empty($categories)) - return $this->_logs; - else if(empty($levels)) - return array_values(array_filter(array_filter($this->_logs,array($this,'filterByCategories')))); - else if(empty($categories)) - return array_values(array_filter(array_filter($this->_logs,array($this,'filterByLevels')))); - else - { - $ret=array_values(array_filter(array_filter($this->_logs,array($this,'filterByLevels')))); - return array_values(array_filter(array_filter($ret,array($this,'filterByCategories')))); - } - } - - /** - * Filter function used by {@link getLogs} - * @param array element to be filtered - */ - private function filterByCategories($value) - { - foreach($this->_categories as $category) - { - if($value[2]===$category || strpos($value[2],$category.'.')===0) - return $value; - } - return false; - } - - /** - * Filter function used by {@link getLogs} - * @param array element to be filtered - */ - private function filterByLevels($value) - { - if($value[1] & $this->_levels) - return $value; - else - return false; - } -} - -?> \ No newline at end of file -- cgit v1.2.3