Créer un fichier log quand une fonction est executée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Créer un fichier log quand une fonction est executée

Re: Créer un fichier log quand une fonction est executée

par laurent5353 » 28 sept. 2022, 13:29

Merci @rthur j'ai trouvé la solution .

Code : Tout sélectionner

$POM_status=getCaptValues('17','Position','','GPIO-State.x'); if(is_null($_SESSION['pmp_status'])) $_SESSION['pmp_status'] = $POM_status; $log = $POM_status != $_SESSION['pmp_status']; $_SESSION['pmp_status'] = $POM_status; if ($POM_status=="Ouvert"){ $POM_img="Pompe_ON.png"; $POM_txt="MARCHE"; $POM_col='white'; } elseif ($POM_status=="Ferme"){ $POM_img="Pompe_OFF.png"; $POM_txt="ARRET"; $POM_col='white'; } if($log) addLogEventp($POM_txt);

Re: Créer un fichier log quand une fonction est executée

par @rthur » 28 sept. 2022, 10:14

Moi je serais toi, dans mon fichier de log, je ne mettrai pas uniquement les MARCHE, mais les changements d'état.

Comme ça avant d'écrire MARCHE, je regarderai la dernière ligne de log précédemment écrite, si je suis toujours dans le même état je n'écrit rien, si l'état n'est pas le même alors j'écris MARCHE ou ARRET.


Si tu ne veux pas avoir un fichier de log avec tous les changements d'états mais uniquement les MARCHE, alors tu stockes dans un autre fichier (appelons le fichier2.txt) l'état courant, et tu n'écris les MARCHE dans ton fichier de log que si le fichier2.txt contient le statut précédent "ARRET" et que le statut courant est MARCHE.

Re: Créer un fichier log quand une fonction est executée

par laurent5353 » 27 sept. 2022, 10:52

Si je fais cette fonction ?

Code : Tout sélectionner

function addLogEvent($event) { $time = date("D, d M Y H:i:s"); $time = "[".$time."] "; $event = $time.$event."\n"; file_put_contents("/../logs/pmp.txt", $event, FILE_APPEND); }

Code : Tout sélectionner

$POM_status=getCaptValues('17','Position','','GPIO-State.x'); if ($POM_status=="Ouvert"){ addLogEvent("Marche pompe"); $POM_img="Pompe_ON.png"; $POM_txt="MARCHE"; $POM_col='white'; }


Sa fonctionne mais mon fichier log se rempli toutes les 5 secondes car mon autre fonction getCaptValues fonctionne toutes les 5 secondes .Comment faire pour avoir une seul ecriture de Marche dans mon fichier de log ?

Créer un fichier log quand une fonction est executée

par laurent5353 » 27 sept. 2022, 09:08

Bonjour , actuellement une fonction me permet de recuperer l’état d'un Port GPIO ,
suivant l'etat du port (ouvert ou fermé) Avec ces lignes de code je fais affiché une icône et écrit (MARCHE ) sur ma page php.

Je voudrais aussi que sa crées un fichier de log ou il sera marqué MARCHE avec l'heure .

Code : Tout sélectionner

$POM_status=getCaptValues('17','Position','','GPIO-State.x'); if ($POM_status=="Ouvert"){ $POM_img="Pompe_ON.png"; $POM_txt="MARCHE"; $POM_col='white'; // Ecriture d'un fichier txt $nom_file = "pompe.txt"; // création du fichier $f = fopen($pompe.txt, "x+"); // écriture fputs(POM_txt="MARCHE" ); // fermeture fclose($f);