Page 1 sur 1

Méthode pour Analyseur de log ?

Posté : 05 avr. 2012, 14:29
par lyzergik
Bonjour,

Je suis entrain de réaliser un analyseur de fichier log en PHP dont je vous décrit brièvement le fonctionnement :

Upload du fichier log en .txt
Analyse et nettoyage ligne par ligne
Affichage des résultats et stats

J'ai donc des lignes sur le fichier log qui ressemblent à ça :

(Serial) (type) (modele) (valeur) ......

Afin d'interpréter mes données par type ou par modèle ou autre je les stocke dans une base de donnée ou donc je retrouve toutes mes infos du log dans une table (des centaines de lignes par log).

Le problème est que l'analyseur peut être utilisé par plusieurs utilisateurs en même temps et que ma base de données va se remplir à une vitesse ahurissante avec cette méthode (sachant que je génère une table pour chaque analyse de log).

Ma question est la suivante:

Quelle méthode utiliser pour pouvoir traiter mes données facilement (via requêtes) sans garder les infos du log lorsque l'utilisateur quitte la page ?

J'avais certaines pistes comme les tables temporaires ... mais pour m'éviter de partir dans tout les sens j'aimerais non pas une solution toute faite mais un avis d'expert pour m'aiguiller dans la bonne direction


Merci bien et bonne journée

PS: Pas évident à expliquer ... si besoin de précisions faites signe :)

Re: Méthode pour Analyseur de log ?

Posté : 05 avr. 2012, 15:11
par Mazarini
Tu peux aussi alimenter les variables $Serial, $type, $modele et $valeur
Ensuite tu fais des cumuls
<?PHP
if (isset($tableau[$Serial][$type][$modele][$valeur]))
{
   $tableau[$Serial][$type][$modele][$valeur]++;  
}
else
{
   $tableau[$Serial][$type][$modele][$valeur] = 1;
}
?>
Ensuite, il te reste à afficher le contenu de $tableau avec des boucles foreach

Re: Méthode pour Analyseur de log ?

Posté : 05 avr. 2012, 15:15
par lyzergik
Merci bien pour l'attention que tu porte à mon problème , mais si je veux afficher uniquement les ligne dont le type="XXX" ou les lignes dont les valeurs sont superieures a ....

Sous forme de requêtes c'est réalisable facilement mais là sous forme de tableau ...

Re: Méthode pour Analyseur de log ?

Posté : 05 avr. 2012, 18:19
par moogli
Hormis les tables temporaires tu n'a pas trop le choix.
Par contre si les requêtes ne sont pas trop complexe tu peux utiliser sqlite et détruire le fichier en fin de session.
tu peux faire un tri sur un tableau à multiple dimension.
En gros un tableau qui contient des tableaux image d'une ligne (bon je verrais plutôt une ligne modélisée par un objet mais on peux faire sans).
Avec la fonction array_multisort.
Pour les gris simple plus grand - plus petit sur une colonne
Après pour des critères plus complexe faut imaginer la chose à partir de cette fonction.
Il te faut
- un critère dynamique
- par courir le tableau classé (ou pas d'ailleurs) et appliquer le critère à chaque élément pour ne garder dans un tableaux résultat que les éléments voulus (sans détruire l'original qui sera en session).

C'est pas super complexe à mettre en oeuvre juste la gestion des critères.


@+