static function log($category, $message) { require_once THRIFT_ROOT . '/Thrift.php'; require_once THRIFT_ROOT . '/protocol/TBinaryProtocol.php'; require_once THRIFT_ROOT . '/transport/TSocket.php'; require_once THRIFT_ROOT . '/transport/TFramedTransport.php'; require_once THRIFT_ROOT . '/packages/scribe/scribe.php'; switch ($category) { case 'general': case 'accounts': case 'actions': case 'status': case 'security': case 'debug': case 'history': case 'regulation': case 'specials': break; default: fatal(); } if (!is_string($message)) { if (is_array($message)) { if (!isset($message['ts'])) { $message['ts'] = time(); } if (!isset($message['client_ip'])) { $message['client_ip'] = Utils::get_client_ip(); } if (!isset($message['user_id']) && Auth::is_logged()) { $message['user_id'] = Auth::get_user_id(); } if (!isset($message['user_name']) && Auth::is_logged()) { $message['user_name'] = Auth::get_user_name(); } $oauth_client_id = Auth::get_oauth_client_id(); if (!isset($message['oauth_client_id']) && !empty($oauth_client_id)) { $message['oauth_client_id'] = $oauth_client_id; } } $message = json_encode($message); } try { $log_entry = new \LogEntry(array('category' => $category, 'message' => $message)); $messages = array($log_entry); $socket = new \TSocket(SCRIBE_HOST, SCRIBE_PORT, FALSE); $transport = new \TFramedTransport($socket); $protocol = new \TBinaryProtocolAccelerated($transport, FALSE, FALSE); $client = new \scribeClient($protocol, $protocol); $transport->open(); $client->send_log($messages); $transport->close(); } catch (\TException $e) { return FALSE; } return TRUE; }
$lineArr = explode("\n", $content); foreach ($lineArr as $line) { $valArr = explode("\t", $line); $channelId = getChannelId($valArr[0]); if (-1 != $channelId) { $sql = "update xxx set detailpv={$valArr['1']},detailuv={$valArr['2']} where analysisdate='{$yesterday}' and xxx={$channelId} and xxx=0"; //echo $sql . "\n"; $res = $db->query($sql); } } } } $db->close(); } } $transport->close(); //返回频道对应的id号 function getChannelId($channel) { switch ($channel) { //同城活动 case "huodong": return 12; //宠物 //宠物 case "chongwu": return 1; //其他 //其他 default: return -1;
private static function logToScribe($messages) { global $THRIFT_ROOT; require_once $THRIFT_ROOT . '/Thrift.php'; require_once $THRIFT_ROOT . '/transport/TSocket.php'; require_once $THRIFT_ROOT . '/transport/TFramedTransport.php'; require_once $THRIFT_ROOT . '/protocol/TBinaryProtocol.php'; require_once 'Scribe.php'; $entries = array(); foreach ($messages as $message) { $entries[] = new LogEntry($message); } $socket = new TSocket(Z_CONFIG::$LOG_ADDRESS, Z_CONFIG::$LOG_PORT, true); $transport = new TFramedTransport($socket); $protocol = new TBinaryProtocol($transport, false, false); $scribe = new scribeClient($protocol, $protocol); $transport->open(); $scribe->Log($entries); $transport->close(); }
/** * Contact the bounce timer server. */ public static function doBounceQuery($query) { global $IP, $THRIFT_ROOT; $THRIFT_ROOT = "{$IP}/extensions/wikihow/common/thrift"; require_once $THRIFT_ROOT . '/Thrift.php'; require_once $THRIFT_ROOT . '/protocol/TBinaryProtocol.php'; require_once $THRIFT_ROOT . '/transport/TSocket.php'; require_once $THRIFT_ROOT . '/transport/TFramedTransport.php'; require_once $THRIFT_ROOT . '/packages/BounceTimer/btLogProxy.php'; require_once $THRIFT_ROOT . '/packages/BounceTimer/btLogServer.php'; require_once $THRIFT_ROOT . '/packages/BounceTimer/BounceTimer_types.php'; try { $socket = new TSocket(WH_BOUNCETIMER_SERVER, WH_BOUNCETIMER_PORT); $transport = new TFramedTransport($socket, 1024, 1024); $protocol = new TBinaryProtocol($transport); $client = new btLogServerClient($protocol); $transport->open(); $results = $client->query(json_encode($query)); $out = array('err' => '', 'results' => json_decode($results, true)); $transport->close(); } catch (TException $e) { $err = $e->getMessage() . "\n" . print_r(debug_backtrace(), true); $out = array('err' => $err); } return $out; }
public function logMulti(array $messages) { $this->_transport->open(); $this->_client->Log($messages); $this->_transport->close(); }