/** * writeItem * * Write into log file one report line * * @param array $item Loggable report data * @return null */ public static function writeItem(array $item) { $existsLog = false; $logDir = APPLICATION . 'logs'; $logFile = $logDir . '/main.log'; if (!is_dir($logDir)) { exit('Log path ' . $logDir . ' is not directory or not exists!'); } else { if (!is_writable($logDir)) { exit('Log path ' . $logDir . ' don\'t have writable permissions!'); } } if (is_file($logFile)) { if (!is_writable($logFile)) { exit('Log file ' . $logFile . ' don\'t have writable permission!'); } $existsLog = true; $maxLogSize = App::getConfig('main')->system->log_file_max_size; if (filesize($logFile) > $maxLogSize) { $logName = date('Y-m-d_H.i.s'); $archLog = $logDir . '/main_' . $logName . '.log'; rename($logFile, $archLog); $existsLog = false; } } $item['url'] = Request::getRawUrl(); $item = ($existsLog ? ",\n" : '') . json_encode($item); file_put_contents($logFile, $item, LOCK_EX | FILE_APPEND); if (!$existsLog) { chmod($logFile, 0666); } }
/** * Constructor * @param Client $cli * @param Request $req * @param string|integer $key */ public function __construct($cli, $req, $key = null) { $this->cli = $cli; $this->req = $req; $this->key = $key; $this->res = new Response($req->getRawUrl()); $this->finished = $this->headerOk = false; $this->timeBegin = microtime(true); }
/** * Run parse handler * @param Response $res response object * @param Request $req request object * @param mixed $key the key string of multi request */ public function runParser($res, $req, $key = null) { if ($this->_parser !== null) { self::debug('run parser: ', $req->getRawUrl()); if ($this->_parser instanceof ParseInterface) { $this->_parser->parse($res, $req, $key); } else { call_user_func($this->_parser, $res, $req, $key); } } }