protected static function init($mongoServerKey = 0, $isMongoWrite = 0) { static $reconn = 0; static $faildServer = null; $mongoKey = self::$_mongoServerKey . $mongoServerKey . $isMongoWrite; if (empty(self::$mongo[$mongoKey])) { defined('MONGOCACHE_CONF_KEY') || define('MONGOCACHE_CONF_KEY', 'Mongo'); $memConf = ZOL_Config::get(MONGOCACHE_CONF_KEY); if ($memConf) { self::$server = $memConf; } try { if ($mongoServerKey) { if (self::$mongoDbArr[$mongoServerKey]) { if ($isMongoWrite) { self::$server = self::$mongoDbArr[$mongoServerKey]['wserver']; self::$eserver = self::$mongoDbArr[$mongoServerKey]['wserver']; } else { self::$server = self::$mongoDbArr[$mongoServerKey]['server']; self::$eserver = self::$mongoDbArr[$mongoServerKey]['eserver']; } } } else { self::$server = 'localhost'; self::$eserver = 'mongo_server_zoldb'; //均衡服务器 } if ($reconn == 0) { $server = self::$server; } else { $server = self::$eserver; } $server = 'mongodb://' . $server; self::$mongo[$mongoKey] = new Mongo($server, array('timeout' => self::$timeout, 'persist' => 'Product')); } catch (MongoException $e) { if (self::$mongo[$mongoKey]) { self::$mongo[$mongoKey]->close(); } self::$mongo[$mongoKey] = null; if ($reconn < 2) { ++$reconn; return self::init($mongoServerKey, $isMongoWrite); } ZOL_Log::write('异常1:' . $e->getMessage(), ZOL_Log::TYPE_ERROR); Plugin_Expires::setExpires(0); ZOL_Http::sendHeader(404); trigger_error($e->getMessage(), E_USER_WARNING); exit; } } $reconn = 0; }
public static function handler($exception) { if ($exception instanceof Exception) { $debugging = defined('IS_DEBUGGING') ? IS_DEBUGGING : false; $production = defined('IS_PRODUCTION') ? IS_PRODUCTION : false; if (true == $debugging) { if (true == $production) { ZOL_Log::write(ZOL_String::clean($exception), ZOL_Log::TYPE_EXCEPTION); } else { echo ZOL_Request::resolveType() == ZOL_Request::CLI ? ZOL_String::clean($exception) : $exception; } } else { header('location: ' . SYSTEM_HOMEPAGE); } } }
public static function handler($level, $errorMsg, $file, $line, $context = null) { if ('.tpl.php' == substr($file, -8)) { return; } $str = new ZOL_Exception($errorMsg, $level, $file, $line); $debugging = IS_DEBUGGING; $production = IS_PRODUCTION; if ($debugging) { $content = "<br />\n<h2>Error Info:</h2>\n" . '<b>MESSAGE:</b> ' . $errorMsg . "<br />\n" . '<b>TYPE:</b> ' . (isset(self::$levels[$level]) ? self::$levels[$level] : $level) . "<br />\n" . '<b>FILE:</b> ' . $file . "<br />\n" . '<b>LINE:</b> ' . $line . "<br />\n" . $str; if ($production) { ZOL_Log::write(ZOL_String::clean($content), ZOL_Log::TYPE_ERROR); } else { echo ZOL_Request::resolveType() == ZOL_Request::CLI ? ZOL_String::clean($content) : $content; } } }
/** * 检查url中的参数名,如果有该参数,就写日志 */ public static function checkUriAndWrite($paramArr) { $options = array('message' => '', 'paramName' => '', 'type' => self::TYPE_LOG, 'hasMark' => false, 'recTime' => false); if (is_array($paramArr)) { $options = array_merge($options, $paramArr); } extract($options); if (isset($_SERVER["REQUEST_URI"]) && strpos($_SERVER["REQUEST_URI"], "?") !== false) { $addParam = substr($_SERVER["REQUEST_URI"], strpos($_SERVER["REQUEST_URI"], "?") + 1); parse_str($addParam, $addParamArr); if (isset($addParamArr[$paramName])) { if ($recTime) { #是否计算花费的时间 $message = " [" . round((microtime(true) - self::$timer) * 1000, 2) . " ms]" . $message; } ZOL_Log::write($message, $type, $hasMark); } } }