MESSAGES DE LOG
Html->link(" [$info_level] ", ['action' => "logs?level=$info_level"]);
echo '
';
foreach ($error_levels as $error_level) echo $this->Html->link(" [$error_level] ", ['action' => "logs?level=$error_level"]);
?>
pwd() . DS . '..' . DS . 'logs' . DS . $logfile_name.'.log';
$nblines_to_read = 5000;
/*
$f = fopen($logfile_path, "r") or die("Unable to open file!");
//echo fgets($f);
while(!feof($f)) {
echo fgets($f) . "
";
}
fclose($f);
*/
// On va direct à la fin du fichier
try {
$f = new SplFileObject($logfile_path, "r");
} catch (Exception $e) {
echo("Le fichier de log '/logs/".basename($logfile_path)."' n'existe pas encore...");
return;
}
$f->seek(PHP_INT_MAX);
$last_line = $f->key();
// Lire TOUT le fichier
//$lines = new LimitIterator($f, 0, $last_line);
// Lire seulement les $nblines_to_read dernières lignes
$line_num_from = max(0,$last_line-$nblines_to_read);
$lines = new LimitIterator($f, $line_num_from);
//$lines = new LimitIterator($f, $last_line-$nblines_to_read, $last_line);
//print_r(iterator_to_array($lines));
// Inversion des lignes pour affichage anti-chrono
$lines_reversed = array_reverse(iterator_to_array($lines));
$level = ucfirst($level);
foreach ($lines_reversed as $line) {
if (mb_strpos($line, "$level: ") !== FALSE) echo $line.'
';
//if (mb_strpos($line, 'Info: ') !== FALSE) echo $line.'
';
//if (mb_strpos($line, '/materiels/edit/') !== FALSE) echo $line.'
';
}
// Close file
$f=null;
?>