summaryrefslogtreecommitdiff
path: root/include/errorhandler.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-05-07 15:36:14 +0400
committerAndrew Dolgov <[email protected]>2013-05-07 15:36:14 +0400
commit82076ce53113be9cc053f8740356e7e1b81e5643 (patch)
tree5eba36805f593ec7dd0aad671b5bcca0ae01cf53 /include/errorhandler.php
parent66af65f14b4f3c670bb3f9ca7b1c80081f9281d1 (diff)
parent23923fb29b345c1eea5b70a6df4d30395425bf37 (diff)
Merge branch 'master' into css-feedtree-counter
Conflicts: tt-rss.css
Diffstat (limited to 'include/errorhandler.php')
-rw-r--r--include/errorhandler.php37
1 files changed, 37 insertions, 0 deletions
diff --git a/include/errorhandler.php b/include/errorhandler.php
new file mode 100644
index 000000000..9acef2357
--- /dev/null
+++ b/include/errorhandler.php
@@ -0,0 +1,37 @@
+<?php
+function ttrss_error_handler($errno, $errstr, $file, $line, $context) {
+ global $logger;
+
+ if (error_reporting() == 0 || !$errno) return false;
+
+ $file = substr(str_replace(dirname(dirname(__FILE__)), "", $file), 1);
+
+ return Logger::get()->log_error($errno, $errstr, $file, $line, $context);
+}
+
+function ttrss_fatal_handler() {
+ global $logger;
+
+ $error = error_get_last();
+
+ if ($error !== NULL) {
+ $errno = $error["type"];
+ $file = $error["file"];
+ $line = $error["line"];
+ $errstr = $error["message"];
+
+ if (!$errno) return false;
+
+ $context = debug_backtrace();
+
+ $file = substr(str_replace(dirname(dirname(__FILE__)), "", $file), 1);
+
+ return Logger::get()->log_error($errno, $errstr, $file, $line, $context);
+ }
+
+ return false;
+}
+
+register_shutdown_function('ttrss_fatal_handler');
+set_error_handler('ttrss_error_handler');
+?>