From 940a53f12d6aa0984608b9b59d94723658dfd409 Mon Sep 17 00:00:00 2001 From: xue <> Date: Mon, 3 Apr 2006 13:05:22 +0000 Subject: Added TPropelLogRoute. --- framework/Util/TLogRouter.php | 8 +++- framework/Util/TPropelLogRoute.php | 95 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 framework/Util/TPropelLogRoute.php (limited to 'framework/Util') diff --git a/framework/Util/TLogRouter.php b/framework/Util/TLogRouter.php index bdad8649..06d70b1e 100644 --- a/framework/Util/TLogRouter.php +++ b/framework/Util/TLogRouter.php @@ -292,7 +292,13 @@ abstract class TLogRoute extends TApplicationComponent /** * Processes log messages and sends them to specific destination. * Derived child classes must implement this method. - * @param array list of messages. Each array element is a (formatted) message string. + * @param array list of messages. Each array elements represents one message + * with the following structure: + * array( + * [0] => message + * [1] => level + * [2] => category + * [3] => timestamp); */ abstract protected function processLogs($logs); } diff --git a/framework/Util/TPropelLogRoute.php b/framework/Util/TPropelLogRoute.php new file mode 100644 index 00000000..2ebbc561 --- /dev/null +++ b/framework/Util/TPropelLogRoute.php @@ -0,0 +1,95 @@ + + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2006 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Revision: $ $Date: $ + * @package System.Util + */ + +/** + * TPropelLogRoute class. + * + * TPropelLogRoute saves selected log messages into a Propel database. + * The name of the Propel database object used to represent each message + * is specified by {@link setPropelObjectName PropelObjectName}, which defaults + * to 'PradoLog'. + * + * The schema of the Propel object must be as follows (the table name can be + * changed to the value of {@link getPropelObjectName PropelObjectName}. + * + * + * + * + * + * + * + *
+ *
+ * + * @author Jason Ragsdale + * @version $Revision: $ $Date: $ + * @package System.Util + * @since 3.0 + */ +class TPropelLogRoute extends TLogRoute +{ + private $_className='PradoLog'; + + /** + * @return string the name of the Prople object used to save each log message. Defaults to 'PradoLog'. + */ + public function getPropelObjectName() + { + return $this->_className; + } + + /** + * @param string the name of the Prople object used to save each log message. The name can be in namespace format. + */ + public function setPropelObjectName($value) + { + $this->_className=$value; + } + + /** + * Saves log messages to the Propel database object. + * + * @param array $logs + */ + protected function processLogs($logs) + { + foreach($logs as $log) + { + $pradoLog=Prado::createComponent($this->_className); + $pradoLog->setMessage($log[0]); + $pradoLog->setLevel($this->getLevelName($log[1])); + $pradoLog->setCategory($log[2]); + $pradoLog->setTime($log[3]); + $pradoLog->save(); + } + } +} +?> \ No newline at end of file -- cgit v1.2.3