diff options
author | Andrew Dolgov <[email protected]> | 2015-12-03 16:15:28 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2015-12-03 16:15:28 +0300 |
commit | 475d7628723b033e90d2b70bd084c42941f795d6 (patch) | |
tree | e115c1ee4f825b73b3180bab8d544a929686520a | |
parent | fd3e5e8da4f074225fa1c4995230b0da9aaf9812 (diff) |
logger: record last query before logged error
-rw-r--r-- | classes/db/mysqli.php | 4 | ||||
-rw-r--r-- | classes/db/pgsql.php | 4 | ||||
-rw-r--r-- | include/errorhandler.php | 6 |
3 files changed, 14 insertions, 0 deletions
diff --git a/classes/db/mysqli.php b/classes/db/mysqli.php index c685b75a0..eef500f77 100644 --- a/classes/db/mysqli.php +++ b/classes/db/mysqli.php @@ -24,6 +24,10 @@ class Db_Mysqli implements IDb { } function query($query, $die_on_error = true) { + global $last_query; + + if (strpos($query, "ttrss_error_log") === FALSE) $last_query = $query; + $result = @mysqli_query($this->link, $query); if (!$result) { $error = @mysqli_error($this->link); diff --git a/classes/db/pgsql.php b/classes/db/pgsql.php index 6b772d9e1..7bdcb7e9d 100644 --- a/classes/db/pgsql.php +++ b/classes/db/pgsql.php @@ -35,6 +35,10 @@ class Db_Pgsql implements IDb { } function query($query, $die_on_error = true) { + global $last_query; + + if (strpos($query, "ttrss_error_log") === FALSE) $last_query = $query; + $result = @pg_query($this->link, $query); if (!$result) { diff --git a/include/errorhandler.php b/include/errorhandler.php index 52431c2de..21cc9a94d 100644 --- a/include/errorhandler.php +++ b/include/errorhandler.php @@ -1,17 +1,21 @@ <?php function ttrss_error_handler($errno, $errstr, $file, $line, $context) { global $logger; + global $last_query; if (error_reporting() == 0 || !$errno) return false; $file = substr(str_replace(dirname(dirname(__FILE__)), "", $file), 1); + if ($last_query) $errstr .= " [Last query: $last_query]"; + if (class_exists("Logger")) return Logger::get()->log_error($errno, $errstr, $file, $line, $context); } function ttrss_fatal_handler() { global $logger; + global $last_query; $error = error_get_last(); @@ -27,6 +31,8 @@ function ttrss_fatal_handler() { $file = substr(str_replace(dirname(dirname(__FILE__)), "", $file), 1); + if ($last_query) $errstr .= " [Last query: $last_query]"; + if (class_exists("Logger")) return Logger::get()->log_error($errno, $errstr, $file, $line, $context); } |