示例#1
0
文件: errlog.php 项目: zxy2543/yodphp
 /**
  * handle
  */
 public static function handle()
 {
     if ($error = error_get_last()) {
         $md5key = md5(json_encode($error));
         if (FCache::S($md5key)) {
             return;
         }
         if (isset(self::$errtype[$error['type']])) {
             $error['type'] = self::$errtype[$error['type']];
             if (isset($error['message']) && stripos($error['message'], 'SQLSTATE')) {
                 $error['sql'] = Yod::db()->lastQuery();
             }
             $error['trace'] = debug_backtrace();
         }
         // http_filter
         foreach (Errlog::$http_filter as $key => $rules) {
             if (empty($_SERVER[$key])) {
                 continue;
             }
             foreach ($rules as $value) {
                 if (strripos($_SERVER[$key], $value) !== false) {
                     return;
                 }
             }
         }
         FCache::S($md5key, $error, 1800);
         Errlog::sendlog($error);
     }
 }