summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-04-16 19:41:31 +0400
committerAndrew Dolgov <[email protected]>2013-04-16 19:41:31 +0400
commit889a5f9f195309df5842f142986b3166212d8a58 (patch)
treeddefb4fe997bb9625856e56196e4b9e84592e742 /classes
parent4f032700dbfbbfa35798e05497c8a868eb73476f (diff)
experimental SQL-based error logger
Diffstat (limited to 'classes')
-rw-r--r--classes/logger.php24
-rw-r--r--classes/logger/sql.php35
2 files changed, 59 insertions, 0 deletions
diff --git a/classes/logger.php b/classes/logger.php
new file mode 100644
index 000000000..6370e1425
--- /dev/null
+++ b/classes/logger.php
@@ -0,0 +1,24 @@
+<?php
+class Logger {
+
+ protected $errornames = array(
+ 2 => 'E_WARNING',
+ 8 => 'E_NOTICE',
+ 256 => 'E_USER_ERROR',
+ 512 => 'E_USER_WARNING',
+ 1024 => 'E_USER_NOTICE',
+ 2048 => 'E_STRICT',
+ 4096 => 'E_RECOVERABLE_ERROR',
+ 8192 => 'E_DEPRECATED',
+ 16384 => 'E_USER_DEPRECATED',
+ 32767 => 'E_ALL');
+
+ function log_error($errno, $errstr, $file, $line, $context) {
+ return false;
+ }
+
+ function log($string) {
+ return false;
+ }
+}
+?>
diff --git a/classes/logger/sql.php b/classes/logger/sql.php
new file mode 100644
index 000000000..7ee22844e
--- /dev/null
+++ b/classes/logger/sql.php
@@ -0,0 +1,35 @@
+<?php
+class Logger_SQL {
+
+ private $link;
+
+ function __construct() {
+ $this->link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
+ }
+
+ function log_error($errno, $errstr, $file, $line, $context) {
+
+ if ($errno == E_NOTICE) return false;
+
+ if ($this->link) {
+ $errno = db_escape_string($this->link, $errno);
+ $errstr = db_escape_string($this->link, $errstr);
+ $file = db_escape_string($this->link, $file);
+ $line = db_escape_string($this->link, $line);
+ $context = db_escape_string($this->link, json_encode($context));
+
+ $owner_uid = $_SESSION["uid"] ? $_SESSION["uid"] : "NULL";
+
+ $result = db_query($this->link,
+ "INSERT INTO ttrss_error_log
+ (errno, errstr, filename, lineno, context, owner_uid, created_at) VALUES
+ ($errno, '$errstr', '$file', '$line', '$context', $owner_uid, NOW())");
+
+ return db_affected_rows($this->link, $result) != 0;
+
+ }
+ return false;
+ }
+
+}
+?>