From 77750ab4cc4c0055a29352334a9357d74e3957d3 Mon Sep 17 00:00:00 2001 From: wei <> Date: Thu, 5 Jan 2006 01:13:15 +0000 Subject: coreLog instrumentation. --- framework/Log/TEventLog.php | 40 +++++++++--- framework/Log/TEzcLogger.php | 133 --------------------------------------- framework/Log/TLog.php | 13 ---- framework/Log/TLogManager.php | 141 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 172 insertions(+), 155 deletions(-) delete mode 100644 framework/Log/TEzcLogger.php delete mode 100644 framework/Log/TLog.php create mode 100644 framework/Log/TLogManager.php (limited to 'framework/Log') diff --git a/framework/Log/TEventLog.php b/framework/Log/TEventLog.php index d291d3f5..8fb56618 100644 --- a/framework/Log/TEventLog.php +++ b/framework/Log/TEventLog.php @@ -1,7 +1,7 @@ collectInternalLog(); + } + + public function __destruct() + { + $this->collectInternalLog(); + } + + protected function collectInternalLog() + { + foreach(Prado::coreLog()->entries as $entry) + $this->log($entry[0], $entry[1], $entry[2]); + Prado::coreLog()->entries = array(); + } public function info($msg, $source='Prado', $category='main') { - ezcLog::getInstance()->log($msg, ezcLog::INFO, + $this->log($msg, ezcLog::INFO, array('source'=>$source, 'category'=>$category)); } public function debug($msg, $source='Prado', $category='main') { - ezcLog::getInstance()->log($msg, ezcLog::DEBUG, + $this->log($msg, ezcLog::DEBUG, array('source'=>$source, 'category'=>$category)); } public function notice($msg, $source='Prado', $category='main') { - ezcLog::getInstance()->log($msg, ezcLog::NOTICE, + $this->log($msg, ezcLog::NOTICE, array('source'=>$source, 'category'=>$category)); } public function warn($msg, $source='Prado', $category='main') { - ezcLog::getInstance()->log($msg, ezcLog::WARNING, + $this->log($msg, ezcLog::WARNING, array('source'=>$source, 'category'=>$category)); } public function error($msg, $source='Prado', $category='main') { - ezcLog::getInstance()->log($msg, ezcLog::NOTICE, + $this->log($msg, ezcLog::NOTICE, array('source'=>$source, 'category'=>$category)); } public function fatal($msg, $source='Prado', $category='main') { - ezcLog::getInstance()->log($msg, ezcLog::NOTICE, + $this->log($msg, ezcLog::NOTICE, array('source'=>$source, 'category'=>$category)); } + + protected function log($msg, $code, $info) + { + ezcLog::getInstance()->log($msg, $code, $info); + } } ?> \ No newline at end of file diff --git a/framework/Log/TEzcLogger.php b/framework/Log/TEzcLogger.php deleted file mode 100644 index 11fe6c7f..00000000 --- a/framework/Log/TEzcLogger.php +++ /dev/null @@ -1,133 +0,0 @@ -config)) - $this->initLogger($this->loadConfigFromFile($this->config)); - else - $this->initLogger($xml); - } - - protected function loadConfigFromFile($file) - { - $xml = new TXmlDocument(); - $xml->loadFromFile($file); - return $xml->getElementByTagName('loggers'); - } - - protected function initLogger($xml) - { - TEzcLoggerLoader::using('ezcLog'); - TEzcLoggerLoader::using('ezcLogMap'); - TEzcLoggerLoader::using('ezcLogContext'); - TEzcLoggerLoader::using('ezcLogFilter'); - $loggers = $xml->getElementsByTagName('logger'); - $log = ezcLog::getInstance(); - foreach($loggers as $logger) - { - $filters = $logger->getElementsByTagName('filter'); - $logWriter = $this->getLogWriter($logger); - foreach($filters as $filter) - { - $logFilter = new ezcLogFilter(); - $Severity = $filter->getAttribute('severity'); - $logFilter->severity = $this->getFilterSeverity($Severity); - $map = $filter->getAttribute('disabled') ? 'unmap' : 'map'; - $log->$map($logFilter, $logWriter); - } - } - } - - protected function getLogWriter($xml) - { - switch($xml->getAttribute('destination')) - { - case 'file' : - return TEzcLoggerUnixFileWriterFactory::create($xml); - default : - throw new TException('invalid_log_destination'); - } - } - - protected function getFilterSeverity($string) - { - if(empty($string)) - $string = $this->defaultServerity; - $serverities = explode("|", $string); - $mask = 0; - foreach($serverities as $Severity) - $mask = $mask | $this->getSeverity($Severity); - return $mask; - } - - private function getSeverity($string) - { - switch(strtolower(trim($string))) - { - case 'debug': return ezcLog::DEBUG; - case 'success audit' : return ezcLog::SUCCESS_AUDIT; - case 'failed audit' : return ezcLog::FAILED_AUDIT; - case 'info' : return ezcLog::INFO; - case 'notice' : return ezcLog::NOTICE; - case 'warn' : return ezcLog::WARNING; - case 'error' : return ezcLog::ERROR; - case 'fatal' : return ezcLog::FATAL; - } - return 0; - } -} - - -/** - * ${classname} - * - * ${description} - * - * @author Wei Zhuo - * @version $Revision: 1.66 $ $Date: ${DATE} ${TIME} $ - * @package ${package} - */ -class TEzcLoggerUnixFileWriterFactory -{ - public static function create($xml) - { - TEzcLoggerLoader::using('ezcLogWriter'); - TEzcLoggerLoader::using('ezcLogWriterFile'); - TEzcLoggerLoader::using('ezcLogWriterUnixFile'); - - $dir = $xml->getAttribute('directory'); - $file = $xml->getAttribute('filename'); - if(empty($file)) $file = 'prado.log'; - return new ezcLogWriterUnixFile($dir, $file); - } -} - -/** - * ${classname} - * - * ${description} - * - * @author Wei Zhuo - * @version $Revision: 1.66 $ $Date: ${DATE} ${TIME} $ - * @package ${package} - */ -class TEzcLoggerLoader -{ - public static function using($class) - { - if(class_exists($class, false)) return; - static $classes; - $base = dirname(__FILE__); - if(is_null($classes)) - $classes = include($base.'/EventLog/log_autoload.php'); - require_once($base.'/'.$classes[$class]); - } -} - -?> \ No newline at end of file diff --git a/framework/Log/TLog.php b/framework/Log/TLog.php deleted file mode 100644 index 0a455c84..00000000 --- a/framework/Log/TLog.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/framework/Log/TLogManager.php b/framework/Log/TLogManager.php new file mode 100644 index 00000000..dba96e3a --- /dev/null +++ b/framework/Log/TLogManager.php @@ -0,0 +1,141 @@ +config)) + $this->initLogger($this->loadConfigFromFile($this->config)); + else + $this->initLogger($xml); + } + + protected function loadConfigFromFile($file) + { + $xml = new TXmlDocument(); + $xml->loadFromFile($file); + return $xml->getElementByTagName('loggers'); + } + + protected function initLogger($xml) + { + TEzcLoggerLoader::using('ezcLog'); + TEzcLoggerLoader::using('ezcLogMap'); + TEzcLoggerLoader::using('ezcLogContext'); + TEzcLoggerLoader::using('ezcLogFilter'); + + $log = ezcLog::getInstance(); + foreach($xml->getElementsByTagName('logger') as $logger) + { + $logWriter = $this->getLogWriter($logger); + $filters = $logger->getElementsByTagName('filter'); + foreach($filters as $filter) + { + $logFilter = new ezcLogFilter(); + $Severity = $filter->getAttribute('severity'); + $logFilter->severity = $this->getFilterSeverity($Severity); + $map = $filter->getAttribute('disabled') ? 'unmap' : 'map'; + $log->$map($logFilter, $logWriter); + } + + if($filters->Length < 1) + { + $logFilter = new ezcLogFilter(); + $logFilter->severity = $this->getFilterSeverity(); + $log->map($logFilter, $logWriter); + } + } + } + + protected function getLogWriter($xml) + { + switch($xml->getAttribute('destination')) + { + case 'file' : + return TEzcLoggerUnixFileWriterFactory::create($xml); + default : + throw new TException('invalid_log_destination'); + } + } + + protected function getFilterSeverity($string='') + { + if(empty($string)) + $string = $this->defaultSeverity; + $serverities = explode("|", $string); + $mask = 0; + foreach($serverities as $Severity) + $mask = $mask | $this->getSeverity($Severity); + return $mask; + } + + private function getSeverity($string) + { + switch(strtolower(trim($string))) + { + case 'debug': return ezcLog::DEBUG; + case 'success audit' : return ezcLog::SUCCESS_AUDIT; + case 'failed audit' : return ezcLog::FAILED_AUDIT; + case 'info' : return ezcLog::INFO; + case 'notice' : return ezcLog::NOTICE; + case 'warn' : return ezcLog::WARNING; + case 'error' : return ezcLog::ERROR; + case 'fatal' : return ezcLog::FATAL; + } + return 0; + } +} + + +/** + * ${classname} + * + * ${description} + * + * @author Wei Zhuo + * @version $Revision: 1.66 $ $Date: ${DATE} ${TIME} $ + * @package ${package} + */ +class TEzcLoggerUnixFileWriterFactory +{ + public static function create($xml) + { + TEzcLoggerLoader::using('ezcLogWriter'); + TEzcLoggerLoader::using('ezcLogWriterFile'); + TEzcLoggerLoader::using('ezcLogWriterUnixFile'); + + $path = $xml->getAttribute('directory'); + $dir = Prado::getPathOfNamespace($path); + $file = $xml->getAttribute('filename'); + if(empty($file)) $file = 'prado.log'; + return new ezcLogWriterUnixFile($dir, $file); + } +} + +/** + * ${classname} + * + * ${description} + * + * @author Wei Zhuo + * @version $Revision: 1.66 $ $Date: ${DATE} ${TIME} $ + * @package ${package} + */ +class TEzcLoggerLoader +{ + public static function using($class) + { + if(class_exists($class, false)) return; + static $classes; + $base = dirname(__FILE__); + if(is_null($classes)) + $classes = include($base.'/EventLog/log_autoload.php'); + require_once($base.'/'.$classes[$class]); + } +} + +?> \ No newline at end of file -- cgit v1.2.3