diff -r 5b37998e522e -r 162c1de6545a web/lib/Zend/Log/Writer/Db.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/Zend/Log/Writer/Db.php Fri Mar 11 15:05:35 2011 +0100 @@ -0,0 +1,139 @@ +_db = $db; + $this->_table = $table; + $this->_columnMap = $columnMap; + } + + /** + * Create a new instance of Zend_Log_Writer_Db + * + * @param array|Zend_Config $config + * @return Zend_Log_Writer_Db + * @throws Zend_Log_Exception + */ + static public function factory($config) + { + $config = self::_parseConfig($config); + $config = array_merge(array( + 'db' => null, + 'table' => null, + 'columnMap' => null, + ), $config); + + if (isset($config['columnmap'])) { + $config['columnMap'] = $config['columnmap']; + } + + return new self( + $config['db'], + $config['table'], + $config['columnMap'] + ); + } + + /** + * Formatting is not possible on this writer + */ + public function setFormatter(Zend_Log_Formatter_Interface $formatter) + { + require_once 'Zend/Log/Exception.php'; + throw new Zend_Log_Exception(get_class($this) . ' does not support formatting'); + } + + /** + * Remove reference to database adapter + * + * @return void + */ + public function shutdown() + { + $this->_db = null; + } + + /** + * Write a message to the log. + * + * @param array $event event data + * @return void + */ + protected function _write($event) + { + if ($this->_db === null) { + require_once 'Zend/Log/Exception.php'; + throw new Zend_Log_Exception('Database adapter is null'); + } + + if ($this->_columnMap === null) { + $dataToInsert = $event; + } else { + $dataToInsert = array(); + foreach ($this->_columnMap as $columnName => $fieldKey) { + $dataToInsert[$columnName] = $event[$fieldKey]; + } + } + + $this->_db->insert($this->_table, $dataToInsert); + } +}