public function testAutoFlushByTimeLimit() { global $mockTime; LogService::setAutoFlushEntries(100); LogService::setAutoFlushBytes(512 * 1024); LogService::setLogFlushTimeLimit(0); $this->resetLastFlushTime(10); $request = new FlushRequest(); $app_log_group = new UserAppLogGroup(); $this->addLogLine($app_log_group, 1, 10, 'message 2'); $this->addLogLine($app_log_group, 2, 20, 'message 3'); $request->setLogs($app_log_group->serializeToString()); $response = new VoidProto(); $this->apiProxyMock->expectCall(self::RPC_PACKAGE, self::RPC_FLUSH_METHOD, $request, $response); $mockTime = 10; LogService::log(1, 'message 2'); $mockTime = 20; LogService::setLogFlushTimeLimit(9); LogService::log(2, 'message 3'); }
/** * Write all buffered log messages to the log storage. Logs may not be * immediately available to read. */ public static function flush() { if (isset(self::$app_log_group)) { $req = new FlushRequest(); $req->setLogs(self::$app_log_group->serializeToString()); $resp = new VoidProto(); ApiProxy::makeSyncCall('logservice', 'Flush', $req, $resp); self::$app_log_group->clear(); self::$last_flush_time = microtime(true); } }