]> git.wh0rd.org - tt-rss.git/commitdiff
logger: record last query before logged error
authorAndrew Dolgov <noreply@madoka.volgo-balt.ru>
Thu, 3 Dec 2015 13:15:28 +0000 (16:15 +0300)
committerAndrew Dolgov <noreply@madoka.volgo-balt.ru>
Thu, 3 Dec 2015 13:15:28 +0000 (16:15 +0300)
classes/db/mysqli.php
classes/db/pgsql.php
include/errorhandler.php

index c685b75a02c8e30db2f8d9bdd016b426861e9633..eef500f776d006903b2051cb8e73a995b33eaeb5 100644 (file)
@@ -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);
index 6b772d9e1de47e1d444f2dc8d20b7eec1f0ee7f3..7bdcb7e9d578678b6740aeab12df94767f586e35 100644 (file)
@@ -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) {
index 52431c2de41004ade39892b2289a9b28bd3e6861..21cc9a94d13d7ce2e5fa9bffed954762a601fbbd 100644 (file)
@@ -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);
        }