Viewing file: Db.php (2.94 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /** * Zend Framework * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://framework.zend.com/license/new-bsd * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@zend.com so we can send you a copy immediately. * * @category Zend * @package Zend_Log * @subpackage Writer * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License * @version $Id: Db.php 16219 2009-06-21 19:45:39Z thomas $ */
/** Zend_Log_Writer_Abstract */ require_once 'Zend/Log/Writer/Abstract.php';
/** * @category Zend * @package Zend_Log * @subpackage Writer * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License * @version $Id: Db.php 16219 2009-06-21 19:45:39Z thomas $ */ class Zend_Log_Writer_Db extends Zend_Log_Writer_Abstract { /** * Database adapter instance * @var Zend_Db_Adapter */ private $_db;
/** * Name of the log table in the database * @var string */ private $_table;
/** * Relates database columns names to log data field keys. * * @var null|array */ private $_columnMap;
/** * Class constructor * * @param Zend_Db_Adapter $db Database adapter instance * @param string $table Log table in database * @param array $columnMap */ public function __construct($db, $table, $columnMap = null) { $this->_db = $db; $this->_table = $table; $this->_columnMap = $columnMap; }
/** * Formatting is not possible on this writer */ public function setFormatter($formatter) { require_once 'Zend/Log/Exception.php'; throw new Zend_Log_Exception(get_class() . ' 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); }
}
|