ErrorHandling.php 986 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. //Let's see if we've got a database set up in settings.ini
  3. try{
  4. ApplicationSettings::GetSetting("database", "database");
  5. } catch(Exception $e){
  6. return;
  7. }
  8. ApplicationSettings::RegisterDefaultSetting("error_handling", "enabled", FALSE);
  9. if (ApplicationSettings::GetSetting("error_handling", "enabled")!=true)
  10. return;
  11. $GLOBALS['php_errors']=array();
  12. set_error_handler(function($errNo, $errStr, $errFile, $errLine, $errContext){
  13. LogError($errNo,$errStr,$errFile,$errLine,print_r($errContext,true));
  14. //return false;
  15. });
  16. set_exception_handler(function(Exception $ex){
  17. LogError($ex->getCode(), $ex->getMessage(), $ex->getFile(), $ex->getLine(), $ex->getTraceAsString());
  18. });
  19. function LogError($code, $message, $file, $line, $extraData){
  20. $obj=new DBObject("error_log", "error_id", 0);
  21. $obj->Code=$code;
  22. $obj->Message=$message;
  23. $obj->File=$file;
  24. $obj->Line=$line;
  25. $obj->ExtraData=$extraData;
  26. $obj->Save();
  27. $GLOBALS['php_errors'][]=$obj;
  28. }