function get_lines_from_file($file_, $nb_lines, $allowed_types) { // Add false to the array to get mismatch log lines // $allowed_types[]= false; $lines = array(); $obj = new FileTailer($file_); $qty = 0; while ($obj->hasLines()) { $ret = $obj->tail(1); $line = $ret[0]; $type = parse_linux($line); if (!in_array($type, $allowed_types)) { continue; } array_unshift($lines, '<span class="' . $type . '">' . trim($line) . '</span>'); $qty++; if ($qty >= $nb_lines) { break; } } return $lines; }
public function log_preview() { $this->check_authorized('viewStatus'); $logfiles = glob(SESSIONMANAGER_LOGS . '/*.log'); $logfiles = array_reverse($logfiles); $ret = array(); foreach ($logfiles as $logfile) { $obj = new FileTailer($logfile); $lines = $obj->tail(20); $ret[basename($logfile)] = $lines; } $servers = Abstract_Server::load_all(); $ret['servers'] = array(); foreach ($servers as $server) { $buf = new Server_Logs($server); $buf->process(); $lines = $buf->getLog(20); if ($lines !== false) { $ret['servers'][$server->id] = explode("\n", $lines); } } return $ret; }