16 if (!class_exists(
'DB')) {
17 require_once
'DB.php';
120 function Log_sql($name, $ident =
'', $conf = array(),
123 $this->_id = md5(microtime());
124 $this->_table = $name;
128 if (!empty($conf[
'sql'])) {
129 $this->_sql = $conf[
'sql'];
131 $this->_sql =
'INSERT INTO ' . $this->_table .
132 ' (id, logtime, ident, priority, message)' .
133 ' VALUES(?, CURRENT_TIMESTAMP, ?, ?, ?)';
137 if (isset($conf[
'options']) && is_array($conf[
'options'])) {
138 $this->_options = $conf[
'options'];
142 if (!empty($conf[
'sequence'])) {
143 $this->_sequence = $conf[
'sequence'];
147 if (isset($conf[
'identLimit'])) {
148 $this->_identLimit = $conf[
'identLimit'];
155 if (isset($conf[
'db'])) {
156 $this->_db = &$conf[
'db'];
157 $this->_existingConnection =
true;
158 $this->_opened =
true;
160 $this->_dsn = $conf[
'dsn'];
173 if (!$this->_opened) {
175 $this->_db = &DB::connect($this->_dsn, $this->_options);
176 if (DB::isError($this->_db)) {
186 $this->_opened =
true;
202 if ($this->_opened && !$this->_existingConnection) {
203 $this->_opened =
false;
204 $this->_db->freePrepared($this->_statement);
205 return $this->_db->disconnect();
208 return ($this->_opened ===
false);
223 $this->_ident = substr($ident, 0, $this->_identLimit);
239 function log($message, $priority = null)
242 if ($priority === null) {
252 if (!$this->_opened && !$this->
open()) {
265 $id = $this->_db->nextId($this->_sequence);
266 $values = array($id, $this->_ident, $priority, $message);
269 $result =& $this->_db->execute($this->_statement, $values);
274 $this->
_announce(array(
'priority' => $priority,
'message' => $message));
289 $this->_statement = $this->_db->prepare($this->_sql);
292 return (DB::isError($this->_statement) ===
false);