function session_error_handler($errno, $errstr, $errfile, $errline) { global $session_errors, $debugtrade, $erridx; $debugtrace .= '<br>error ' . $erridx; $session_errors .= "<br />" . FriendlyErrorType($errno) . " #{$erridx} ({$errfile}@{$errline}): {$errstr}"; $erridx++; return false; }
function getErrorType() { $errLvl = error_reporting(); for ($i = 0; $i < 15; $i++) { return FriendlyErrorType($errLvl & pow(2, $i)); } return null; }
/** * 记录日志内容 * @param string $message 内容 * @param int $logType 类型 */ static public function set($message, $logType) { if (DEBUG or !C("LOG_SAVE")) return; //获得日志类型 $type = substr(FriendlyErrorType($logType), 2); if (in_array($type, array_change_value_case(C("LOG_TYPE"), 1))) { $date = date("y-m-d h:i:s"); self::$log[] = $message . "\n"; } }
public static function set($message, $logType) { $type = substr(FriendlyErrorType($logType), 2); if (in_array($type, array_change_value_case(C("LOG_TYPE"), 1))) { self::$log[] = $message . "\n"; } }
/** * 错误处理 */ public static function error($errno, $error, $file, $line) { $errorType = substr(FriendlyErrorType($errno), 2); $msg = "[{$errorType}]" . $error . ' [TIME]' . date("Y-m-d h:i:s") . ' [FILE]' . $file . ' [LINE]' . $line; switch ($errno) { case E_ERROR: case E_PARSE: case E_USER_ERROR: error($msg); break; case E_USER_WARNING: case E_USER_NOTICE: default: Log::set($msg, $errno); if (DEBUG && C("SHOW_WARNING")) { include HDPHP_TPL_PATH . 'notice.html'; } break; } }