errorhandler.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. function ttrss_error_handler($errno, $errstr, $file, $line, $context) {
  3. global $logger;
  4. global $last_query;
  5. if (error_reporting() == 0 || !$errno) return false;
  6. $file = substr(str_replace(dirname(dirname(__FILE__)), "", $file), 1);
  7. if ($last_query) $errstr .= " [Last query: $last_query]";
  8. if (class_exists("Logger"))
  9. return Logger::get()->log_error($errno, $errstr, $file, $line, $context);
  10. }
  11. function ttrss_fatal_handler() {
  12. global $logger;
  13. global $last_query;
  14. $error = error_get_last();
  15. if ($error !== NULL) {
  16. $errno = $error["type"];
  17. $file = $error["file"];
  18. $line = $error["line"];
  19. $errstr = $error["message"];
  20. if (!$errno) return false;
  21. $context = debug_backtrace();
  22. $file = substr(str_replace(dirname(dirname(__FILE__)), "", $file), 1);
  23. if ($last_query) $errstr .= " [Last query: $last_query]";
  24. if (class_exists("Logger"))
  25. return Logger::get()->log_error($errno, $errstr, $file, $line, $context);
  26. }
  27. return false;
  28. }
  29. register_shutdown_function('ttrss_fatal_handler');
  30. set_error_handler('ttrss_error_handler');
  31. ?>