Analyse selon critères de fichiers logs

Description

Ce petit bout de code permet de regarder ses fichiers de logs en triant les lignes à afficher. Bien pratique pour analyser des logs Apache ou autres.
La seule chose à faire est de préciser le répertoire des fichiers de logs et après ça marche tout seul.

Source / Exemple :


<?
$logdir = "/var/log/httpd/"; //Répertoire qui contient les fichiers à analyser

echo "
 <HTML>
 <CENTER>
 <FORM ACTION=\"$PHP_SELF\" METHOD=\"POST\">
 Fichier : <B>$logdir</B><SELECT NAME=\"log\">";
$logfiles = array();
$dh = opendir($logdir);
while (($logfile = readdir($dh)) !== false){
 if ($logfile != "." && $logfile != ".." && !is_dir($logfile)) array_push($logfiles, $logfile);
}
closedir($dh);
asort($logfiles);
while ($logfile = each($logfiles)){
 echo "<OPTION VALUE=\"$logdir", $logfile["value"], "\"";
 if ($logdir.$logfile["value"] == $log) echo " SELECTED";
 echo ">", $logfile["value"], " \n";
}
echo "		</SELECT>
 avec : <INPUT TYPE=\"text\" NAME=\"avec\" VALUE=\"$avec\"> et : <INPUT TYPE=\"text\" NAME=\"et\" VALUE=\"$et\">
 sans : <INPUT TYPE=\"text\" NAME=\"sans\" VALUE=\"$sans\"> ni : <INPUT TYPE=\"text\" NAME=\"ni\" VALUE=\"$ni\">
 <INPUT TYPE=\"submit\" VALUE=\"Valider\">
 </FORM>
 <HR>
 </CENTER>
";

if ($log){
 if (@is_readable($log)){
  $fichier = fopen($log, "r");
  echo "<FONT SIZE=2>";
  while (!feof($fichier)){
   $ligne = fgets($fichier);
   if (((!$avec) or (substr_count($ligne, $avec))) and ((!$et) or (substr_count($ligne, $et))) and ((!$sans) or (!substr_count($ligne, $sans))) and ((!$ni) or (!substr_count($ligne, $ni)))){
    echo "<NOBR>",$ligne,"</NOBR><BR>";
    }
   }
  echo "</FONT>";
  fclose($fichier);
  }
 else{
  echo "Le fichier <B>$log</B> est inaccessible.";
  }
 }
echo "</HTML>";
?>

Conclusion :


Pensez à vérifier les droits d'accès aux fichiers.
A bientôt.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.