[PHP] Test d'une classe
Résolu
kij_82
Messages postés
4089
Date d'inscription
Statut
Contributeur
Dernière intervention
-
elsadelatoundra Messages postés 126 Date d'inscription Statut Membre Dernière intervention -
elsadelatoundra Messages postés 126 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit soucis actuellement. Pour les besoins d'un projet, j'ai créé en PHP un classe pour mes logs, la voici :
Une classe toute simple donc. J'ai le probleme suivant : Au début d'un script, je créé une instance de cette classe :
Puis au cours de mon script, j'y fais appel pour mettre des messages d'erreur, warning, etc..
Et enfin, à la fin de mon script (ou en cas d'erreur), j'écris ces logs dans un fichiers texte (log.txt) :
Le hic c'est que rien ne s'affiche dans mon fichier texte, alors que les message sont bien ajoutés dans la liste de l'objet Logger.
Pourriez-vous tester chez vous cette classe pour savoir si cela vient uniquement de chez moi ou pas ? Car il y a 3 jour tout marchait bien, et maintenant je n'ai plus rien :s
Merci :)
J'ai un petit soucis actuellement. Pour les besoins d'un projet, j'ai créé en PHP un classe pour mes logs, la voici :
Class Logger { var $_file = null; // --- Possoble mode value : // --- 0 = error mode (error traces) // --- 1 = debug mode (error + debug traces) var $mode = null; var $nb_log = null; var $list_log = null; function Logger ( $file, $mode ){ $this->_file = $file; $this->mode = $mode; $this->nb_log = 0; } function addLogMessage ( $logMessage ){ $this->list_log[$this->nb_log] = $logMessage; $this->nb_log++; } function clearLogs ( ){ for ($i = 0; $i < $this->nb_log; $i++ ) unset($this->list_log[$i]); $this->nb_log = 0; } function writeLogFile ( ){ // --- Open the log file (read/write) $fp = fopen($this->_file,"r+"); // --- Go to the begin fseek($fp,0); // --- Write the message in the file for ( $i = 0; $i < $this->nb_log; $i++ ){ fputs($fp,$this->list_log[$i]."\r\n"); } // --- Close the log file fclose($fp); } }
Une classe toute simple donc. J'ai le probleme suivant : Au début d'un script, je créé une instance de cette classe :
$logger = new Logger("./log.txt",1);
Puis au cours de mon script, j'y fais appel pour mettre des messages d'erreur, warning, etc..
$logger->addLogMessage("toto part en vacances");
Et enfin, à la fin de mon script (ou en cas d'erreur), j'écris ces logs dans un fichiers texte (log.txt) :
$logger->writeLogFile();
Le hic c'est que rien ne s'affiche dans mon fichier texte, alors que les message sont bien ajoutés dans la liste de l'objet Logger.
Pourriez-vous tester chez vous cette classe pour savoir si cela vient uniquement de chez moi ou pas ? Car il y a 3 jour tout marchait bien, et maintenant je n'ai plus rien :s
Merci :)
A voir également:
- [PHP] Test d'une classe
- Test performance pc - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test steam deck oled - Guide
- Test composant pc - Guide
- Test batterie pc - Guide
2 réponses
J'ai une piste, si vous mettez cela dans un fichier php :
Vous verrez que entre le temps ou les messages sont ajoutés dans la liste de l'objet et le temps ou ils sont repris pour etre affichés, ceux-ci n'ont plus de valeur (0) :s
Quelqun saurait-il ce qu'il se passe ? (ou peut etre que ca ne le fais que chez moi toujours, vous pouvez confirmer ?)
<?php Class Logger { var $_file = null; // --- Possoble mode value : // --- 0 = error mode (error traces) // --- 1 = debug mode (error + debug traces) var $mode = null; var $nb_log = null; var $list_log = null; function Logger ( $file, $mode ){ $this->_file = $file; $this->mode = $mode; $this->nb_log = 0; } function addLogMessage ( $logMessage ){ echo "Message ajouté : ".$logMessage."<BR>"; $this->list_log[$this->nb_log] = $logMessage; $this->nb_log++; } function clearLogs ( ){ for ($i = 0; $i < $this->nb_log; $i++ ) unset($this->list_log[$i]); $this->nb_log = 0; } function writeLogFile ( ){ // --- Open the log file (read/write) $fp = fopen($this->_file,"w+"); // --- Go to the begin //fseek($fp,0); if ( $fp != false ){ // --- Write the message in the file for ( $i = 0; $i < $this->nb_log; $i++ ){ echo "Message a écrire : ".$this->list_log[$i]."<BR>"; fputs($fp,$this->list_log[$i]."\r\n"); } // --- Close the log file fclose($fp); } else echo "Ne peut pas ouvrir le fichier<BR>"; } } $logger = new Logger("./log.txt",1); $logger->addLogMessage("toto part en vacances"); $logger->addLogMessage("pour s'amuser un peu"); $logger->writeLogFile(); ?>
Vous verrez que entre le temps ou les messages sont ajoutés dans la liste de l'objet et le temps ou ils sont repris pour etre affichés, ceux-ci n'ont plus de valeur (0) :s
Quelqun saurait-il ce qu'il se passe ? (ou peut etre que ca ne le fais que chez moi toujours, vous pouvez confirmer ?)
Coucou !!
Bon, ne te fais pas une fausse joie : je ne pourrais/saurais pas t'aider ...
Par contre, je peux tester ce que tu as envoyé !
Quand j'exécute ton script à l'affichage j'ai :
Et dans le fichier log.txt :
Voilà ... je ne sais pas si ça t'aide !!
Bon courage ;-)
Bon, ne te fais pas une fausse joie : je ne pourrais/saurais pas t'aider ...
Par contre, je peux tester ce que tu as envoyé !
Quand j'exécute ton script à l'affichage j'ai :
Message ajouté : toto part en vacances Message ajouté : pour s'amuser un peu Message a écrire : toto part en vacances Message a écrire : pour s'amuser un peu
Et dans le fichier log.txt :
toto part en vacances pour s'amuser un peu
Voilà ... je ne sais pas si ça t'aide !!
Bon courage ;-)