[PHP] Test d'une classe
Résolu
kij_82
Messages postés
4260
Statut
Contributeur
-
elsadelatoundra Messages postés 126 Statut Membre -
elsadelatoundra Messages postés 126 Statut Membre -
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 steam deck oled - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- 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 ;-)