diff options
-rw-r--r-- | App.php | 56 | ||||
-rw-r--r-- | Db.php | 2 |
2 files changed, 40 insertions, 18 deletions
@@ -12,7 +12,10 @@ class App * Fire up the application */ static public function init() - { + { + // Set custom error handler + set_error_handler("App::error_handler"); + @list($controller, $param, $action) = App::url(); if (empty($param)) { @@ -91,22 +94,49 @@ class App } - static function ok($msg) + static function json($msg) { - $ok = array('result' => 'ok', 'msg' => $msg); - $json = json_encode($ok); + $json = json_encode($msg); header("Content-Type: application/json"); header("Content-Length: " . strlen($json)); print $json; } + static function ok($msg) + { + $ok = array('result' => 'ok', 'msg' => $msg); + self::json($ok); + } + static function error($msg) { - $err = array('result' => 'error', 'msg' => $msg); - $json = json_encode($err); - header("Content-Type: application/json"); - header("Content-Length: " . strlen($json)); - print $json; + $err = array('result' => 'error', 'msg' => $msg); + self::json($msg); + self::log($msg); + } + + /** + * Log an error to our own logging system + */ + static function log($msg) + { + if (is_array($msg)) { + $msg = print_r($msg, true); + } + $c = self::conf("app.error_log"); + $file = realpath(__FILE__."/../../../../data/$c"); + if (!$file) { + return false; + } + $fh = fopen($file, "a+"); + fwrite($fh, $msg); + fclose($fh); + } + + static function error_handler($errno, $errstr, $errfile, $errline) + { + $str = sprintf("%s\t%s\t%s\t%s\n", date("d.m @ H:i:s"), basename($errfile), $errline, $errstr); + self::log($str); } /** @@ -126,14 +156,6 @@ class App list($loc, $lang) = explode("-", $_SERVER['HTTP_ACCEPT_LANGUAGE']); return sprintf("%s_%s", $loc, strtoupper($lang)); } - - static function log($msg) - { - if (is_array($msg)) { - $msg = print_r($msg, true); - } - syslog(LOG_ERR, $msg); - } public function delete($table, $where) { @@ -69,7 +69,7 @@ class Db $stmt = self::getInstance()->prepare($sql); $result = $stmt->execute($data); - + if (!$result) { $e = $stmt->errorInfo(); exit(App::error($e[2])); |