summaryrefslogtreecommitdiff
path: root/framework/Log/TLogger.php
diff options
context:
space:
mode:
authorxue <>2006-03-31 12:42:22 +0000
committerxue <>2006-03-31 12:42:22 +0000
commit6845c00a3f752abecd9ef763848329bceaf63df4 (patch)
treed573c37ad864edde9a04f1c7b415afe6c2a9c1ef /framework/Log/TLogger.php
parent06fdd252452217716b1062b632fd2fc2195a66e2 (diff)
Reorganized folders under framework. This may break existing applications.
Diffstat (limited to 'framework/Log/TLogger.php')
-rw-r--r--framework/Log/TLogger.php130
1 files changed, 0 insertions, 130 deletions
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 @@
-<?php
-/**
- * TLogger class file
- *
- * @author Qiang Xue <qiang.xue@gmail.com>
- * @link http://www.pradosoft.com/
- * @copyright Copyright &copy; 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 <qiang.xue@gmail.com>
- * @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