Hello cher tous,
Je voudrais savoir comment voir les logs du code php dans un bloc code d'un scénario.
En effet j'ai créé un scénario avec un bloc code
<?php
log::add('test','[debug]','Température: test 30 °C');
?>
J'ai créé le fichier test.log dans /var/www/html/log (-rwxrwxrwx 1 www-data www-data 0 Jul 11 10:58 test.log)
Mais j'ai pas les logs lors de l'exécution du scénario
------------------------------------
[2018-07-11 11:15:03][SCENARIO] Start : 'Scenario execute automatiquement sur programmation'.
[2018-07-11 11:15:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-07-11 11:15:03][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
[2018-07-11 11:15:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2018-07-11 11:15:03][SCENARIO] Ajout de l'alerte : Ko
[2018-07-11 11:15:03][SCENARIO] Exécution d'un bloc élément : 37
[2018-07-11 11:15:03][SCENARIO] Exécution du sous-élément de type [action] : code
[2018-07-11 11:15:03][SCENARIO] Exécution d'un bloc code
[2018-07-11 11:15:03][SCENARIO] Fin correcte du scénario
Est ce que cette manière de faire est elle correcte ?
Merci pour l'aide
Cordialement
Exécution d'un code à l'aide d'un scénario
Re: Exécution d'un code à l'aide d'un scénario
Essaye çà : log::add('test','error','Température: test 30 °C');
Ce sera alors visible dans le log test, pas celui de ton scenario
Sinon echo 'bibi'; sera visible dans analyse, logs : scenario_execution
Mais à mon avis ce que tu cherche (écrire dans le log du scénario lui même) c'est çà :
$scenario->setLog('bibi');
Ce sera alors visible dans le log test, pas celui de ton scenario
Sinon echo 'bibi'; sera visible dans analyse, logs : scenario_execution
Mais à mon avis ce que tu cherche (écrire dans le log du scénario lui même) c'est çà :
$scenario->setLog('bibi');
Prod : Jeedom Stable sur Smart | Z-wave
Synology DS1512+|Rpis Kodi|Netatmo|SNIPS-Tips|Market
JeedomV4Tips
Re: Exécution d'un code à l'aide d'un scénario
Bonjour,
Je rebondis sur la question initiale: est-il possible d'écrire dans une log dédiée (pas la log du scenario) en exécutant un bloc code depuis un scenario ?
Si oui comment ?
Merci de vos retours
Je rebondis sur la question initiale: est-il possible d'écrire dans une log dédiée (pas la log du scenario) en exécutant un bloc code depuis un scenario ?
Si oui comment ?
Merci de vos retours
Jeedom 3.3.30 sur Debian 9.4
NUC7I5BNK avec ESXi 6.7
NUC7I5BNK avec ESXi 6.7
-
- Timide
- Messages : 27
- Inscription : 30 juil. 2016, 21:22
Re: Exécution d'un code à l'aide d'un scénario
Bonjour,
Je reviens sur ce sujet, je suis aussi à la recherche d’uzne fonction qui me permet de DEBUG mon code php, avoir un log plus précis que:
« Exécution d’un bloc code »
j’ai essayé:
$scenario->setLog(’bibi’); et n’ai rien trouvé dans le log scenario_execution
Auriez vous d’autre idée
Par avance, merci
Tim
Je reviens sur ce sujet, je suis aussi à la recherche d’uzne fonction qui me permet de DEBUG mon code php, avoir un log plus précis que:
« Exécution d’un bloc code »
j’ai essayé:
$scenario->setLog(’bibi’); et n’ai rien trouvé dans le log scenario_execution
Auriez vous d’autre idée
Par avance, merci
Tim
Re: Exécution d'un code à l'aide d'un scénario
Bonjour à tous,
J'ai eu pas mal de difficultés mais j'ai fini par y arriver, alors si ça peut aider les prochains qui tomberont sur ce fil, voici comment j'ai procédé :
J’espère que ça dépannera certains d'entre vous !
// befa
J'ai eu pas mal de difficultés mais j'ai fini par y arriver, alors si ça peut aider les prochains qui tomberont sur ce fil, voici comment j'ai procédé :
- Tout d'abord veillez à avoir le bon niveau de Log par défaut dans votre configuration Jeedom
Dans : Configuration > Logs > puis en bas onglet Log (à côté de Alertes)
Réglez le niveau de log "minimal" que vous souhaitez voir apparaître dans "Niveau de log par défaut".
Pour ma part il était réglé sur "Erreur", donc les logs "Info" et "Warning" ne passaient pas.
Je l'ai donc réglé sur "Info" - Ensuite créez un fichier log avec le nom de votre choix, on dira "monlog" dans /var/www/html/log
Vous verrez ce log apparaître dans Analyse > Logs si ça a bien fonctionné - Enfin dans votre scénario, utilisez le bloc code avec la syntaxe suivante :
log::add("monlog","info","L'information que je veux logger");
Attention! utilisez bien des " car la fonction attend des string, j'ai galéré sur ce point à cause du copier/coller de codes incorrects sur les forums
Ajustez le niveau de log que vous voulez info/warning/error
J’espère que ça dépannera certains d'entre vous !
// befa
Re: Exécution d'un code à l'aide d'un scénario
Merci befa
- Pièces jointes
-
- Screenshot_20190525-130801_Chrome.jpg (125.34 Kio) Consulté 3088 fois
Re: Exécution d'un code à l'aide d'un scénario
un autre moyen log "app.log"
http://zetcode.com/php/monolog/
Code : Tout sélectionner
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Formatter\LineFormatter;
$logger = new Logger('default');
$format = "[%datetime%] \n [%level_name%] %message% \n [Context %context% Extra %extra%]\n -----------\n";
$streamHandler = new StreamHandler(__DIR__.'/../../log/app.log', Logger::DEBUG);
$streamHandler->setFormatter(new LineFormatter($format, 'H:i:s'));
//$logger->addInfo('Hello log!');
$logger->pushHandler($streamHandler);
$someText ="test";
$declencheur=$scenario->getRealTrigger();
// extras
$logger->pushProcessor(function ($record) {
$record['extra']['user'] = get_current_user();
return $record;
});
$logger->critical('Could not connect to the database');
$logger->info($someText, ['qui lance' => $declencheur]);
//$logger->info('$someText');
création json ect[INFO] test
[Context {"qui lance":"user"} Extra {"user":"www-data"}]
-----------
[00:33:38]
[CRITICAL] Could not connect to the database
[Context [] Extra {"user":"www-data"}]
-----------
[00:33:38]
[INFO] test
[Context {"qui lance":"user"} Extra {"user":"www-data"}]
-----------
http://zetcode.com/php/monolog/
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 10 invités