'message', 'fieldLevel' => 'level'); /** * Class constructor. Pass it a database adapter and the table name of the log table. * * @param Zend_Db_Adapter $dbAdapter * @param string $tableName */ public function __construct(Zend_Db_Adapter_Abstract $dbAdapter, $tableName=null) { // Get the object handle to the database adapter if (is_null($tableName)) { throw new Zend_Log_Adapter_Exception('Database table name must be specified.'); } $this->_dbAdapter = $dbAdapter; $this->_tableName = $tableName; } /** * Sets either 'fieldMessage' to change the field name where messages are logged, * or 'fieldLevel' to change the field name where the log levels are logged. * * @param string $optionKey * @param string $optionValue */ public function setOption($optionKey, $optionValue) { if (!array_key_exists($optionKey, $this->_options)) { throw new Zend_Log_Adapter_Exception("Unknown option \"$optionKey\"."); } $this->_options[$optionKey] = $optionValue; } /** * Does nothing. * * @return bool */ public function open() { return true; } /** * Does nothing. * * @return bool */ public function close() { return true; } /** * Writes an array of key/value pairs to the database, where the keys are the * database field names and values are what to put in those fields. * * @param array $fields * @return bool */ public function write($fields) { /** * If the field defaults for 'message' and 'level' have been changed * in the options, replace the keys in the $field array. */ if ($this->_options['fieldMessage'] != 'message') { $fields[$this->_options['fieldMessage']] = $fields['message']; unset($fields['message']); } if ($this->_options['fieldLevel'] != 'level') { $fields[$this->_options['fieldLevel']] = $fields['level']; unset($fields['level']); } /** * INSERT the log line into the database */ $this->_dbAdapter->insert($this->_tableName, $fields); return true; } }