From 889a5f9f195309df5842f142986b3166212d8a58 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 16 Apr 2013 19:41:31 +0400 Subject: experimental SQL-based error logger --- classes/logger.php | 24 ++++++++++++++++++++++++ classes/logger/sql.php | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 classes/logger.php create mode 100644 classes/logger/sql.php (limited to 'classes') 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 @@ + '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 @@ +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; + } + +} +?> -- cgit v1.2.3-54-g00ecf