Bonjour à tous,
J’aurais besoin d’un peu d’aide pour arriver à fixer le Log Level avec du code PHP.
Dans la page de configuration de mon plugin, je fixe le Log Level en cliquant sur le choix listé et en faisant « Sauvegarder » :
Une nouvelle instruction log::add() est alors affichée immédiatement (en accord avec les règles hiérarchiques) et le fonctionnement est nominal.
J’essaye de réaliser la même opération par programmation avec le code suivant (lancé par un appel Ajax ou pas) :
$logLevelNm1 = log::getLogLevel($pluginId); // Log Level N-1
echo $logLevelNm1 . ' ';
log::add($pluginId, 'info', 'Message Test 1');
// Set plugin LOG level = Info
$logLevelKey = 'log::level::' . $pluginId;
$logLevelValue = '{"100":"0","200":"1","300":"0","400":"0","1000":"0","default":"0"}'; // "200"=Info
$return = config::save($logLevelKey, $logLevelValue, 'core'); // Return true if OK
$logLevelN = log::getLogLevel($pluginId); // Log Level N
echo $logLevelN . ' ';
$logLevelName = log::convertLogLevel($logLevelN);
echo $logLevelName . ' ';
log::add($pluginId, 'info', 'Message Test 2');
et je constate que le changement de niveau de Log n’est pas IMMEDIATEMENT pris en compte.
Une vérification dans la BdD montre que le niveau de Log a bien été changé par l’instruction mais la class log.class.php ne tient pas compte du changement immédiatement.
Il faut que je relance le script ci-dessus pour que le changement soit effectif.
Cela est imagé dans l’affichage des messages echo ci-dessous :
-
Log Level du plugin initial positionné manuellement : (Aucun = « 1000 »)
-
Le script est lancé une fois. Le niveau N-1 est bien 1000 mais le niveau N (après changement) est toujours 1000
Le message de Log (n°2) n’est pas affiché. -
Le script est relancé et cette fois-ci, le niveau N-1 est bien (Info = « 200 »)
Les 2 message de Log (n°1 & n°2) sont bien affichés.
C’est comme si il manquait une instruction qui réalise l’équivalent du « Sauvegarder » manuel.
J’ai épluché le code du Core mais je n’ai pas réussi à trouver quoique ce soit qui m’aide et me débloque.
J’espère avoir été clair dans ma description.
Une idée ? Quelle serait l’instruction à rajouter ?
Merci d’avance
Mes infos de config :
RPi5 - Debian 12
Core : 4.4.2 (alpha)
DNS Jeedom : non