diff options
Diffstat (limited to 'modules/ErrorHandler.php')
-rwxr-xr-x | modules/ErrorHandler.php | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/modules/ErrorHandler.php b/modules/ErrorHandler.php new file mode 100755 index 0000000000..5a30682815 --- /dev/null +++ b/modules/ErrorHandler.php @@ -0,0 +1,35 @@ +<?php +function Piwik_ErrorHandler($errno, $errstr, $errfile, $errline) +{ + $errno = $errno & error_reporting(); + if($errno == 0) return; + if(!defined('E_STRICT')) define('E_STRICT', 2048); + if(!defined('E_RECOVERABLE_ERROR')) define('E_RECOVERABLE_ERROR', 4096); + print "\n<div style='word-wrap: break-word; border: 3px solid red; padding:4px; width:70%; background-color:#FFFF96;'><b>"; + switch($errno){ + case E_ERROR: print "Error"; break; + case E_WARNING: print "Warning"; break; + case E_PARSE: print "Parse Error"; break; + case E_NOTICE: print "Notice"; break; + case E_CORE_ERROR: print "Core Error"; break; + case E_CORE_WARNING: print "Core Warning"; break; + case E_COMPILE_ERROR: print "Compile Error"; break; + case E_COMPILE_WARNING: print "Compile Warning"; break; + case E_USER_ERROR: print "User Error"; break; + case E_USER_WARNING: print "User Warning"; break; + case E_USER_NOTICE: print "User Notice"; break; + case E_STRICT: print "Strict Notice"; break; + case E_RECOVERABLE_ERROR: print "Recoverable Error"; break; + default: print "Unknown error ($errno)"; break; + } + print ":</b> <i>$errstr</i> in <b>$errfile</b> on line <b>$errline</b>\n"; + print("<br><br>Backtrace --><DIV style='font-family:Courier;font-size:10pt'>"); + + ob_start(); + debug_print_backtrace(); + $out1 = ob_get_clean(); + print(str_replace("\n", "<br>", $out1)); + print("</div><br><br>"); + print "\n</pre></div><br>"; +} +?> |