public static function debug($message) { echo $message . PHP_EOL; GWF_Log::rawLog('dog/debug', $message); GWF_Log::flush(); return true; }
/** * commits the session if allowed * @return NULL */ public function __destruct() { # Commit Session if (!self::getConfig('no_session')) { $this->onSessionCommit(self::getConfig('store_last_url')); } if (self::getConfig('load_module') && self::$MODULE->isEnabled()) { $db = gdo_db(); GWF_CachedCounter::persist(); $db->transactionEnd(); } # Flush logfiles if (true === self::getConfig('do_logging')) { GWF_Log::flush(); } }
/** * Error handler creates some html backtrace and can die on _every_ warning etc. * @param int $errno * @param string $errstr * @param string $errfile * @param int $errline * @param $errcontext * @return false */ public static function error_handler($errno, $errstr, $errfile, $errline, $errcontext) { if (error_reporting() === 0) { return; } # Log as critical! if (class_exists('GWF_Log')) { GWF_Log::logCritical(sprintf('%s in %s line %s', $errstr, $errfile, $errline)); GWF_Log::flush(); } switch ($errno) { case -1: $errnostr = 'GWF Error'; break; case E_ERROR: case E_CORE_ERROR: $errnostr = 'PHP Fatal Error'; break; case E_WARNING: case E_USER_WARNING: case E_CORE_WARNING: $errnostr = 'PHP Warning'; break; case E_USER_NOTICE: case E_NOTICE: $errnostr = 'PHP Notice'; break; case E_USER_ERROR: $errnostr = 'PHP Error'; break; case E_STRICT: $errnostr = 'PHP Strict Error'; break; # if(PHP5.3) case E_DEPRECATED: case E_USER_DEPRECATED: $errnostr = 'PHP Deprecated'; break; # if(PHP5.2) case E_RECOVERABLE_ERROR: $errnostr = 'PHP Recoverable Error'; break; # if(PHP5.3) case E_DEPRECATED: case E_USER_DEPRECATED: $errnostr = 'PHP Deprecated'; break; # if(PHP5.2) case E_RECOVERABLE_ERROR: $errnostr = 'PHP Recoverable Error'; break; case E_COMPILE_WARNING: case E_COMPILE_ERROR: $errnostr = 'PHP Compiling Error'; break; case E_PARSE: $errnostr = 'PHP Parsing Error'; break; default: $errnostr = 'PHP Unknown Error'; break; } $is_html = PHP_SAPI === 'cli' ? false : !isset($_GET['ajax']); if ($is_html) { $message = sprintf('<p>%s(%s): %s in <b style=\\"font-size:16px;\\">%s</b> line <b style=\\"font-size:16px;\\">%s</b></p>', $errnostr, $errno, $errstr, $errfile, $errline) . PHP_EOL; } else { $message = sprintf('%s(%s) %s in %s line %s.', $errnostr, $errno, $errstr, $errfile, $errline); } # Output error if (PHP_SAPI === 'cli') { file_put_contents('php://stderr', self::backtrace($message, false) . PHP_EOL); } elseif (GWF_USER_STACKTRACE) { echo self::backtrace($message, $is_html) . PHP_EOL; } else { echo $message . PHP_EOL; } # Send error to admin if (true === self::$MAIL_ON_ERROR) { self::sendDebugMail(self::backtrace($message, false)); } if (true === self::$die) { die(1); # oops :) } return true; }