Présentation du plugin Log Cleaner (log & message)

Voici les informations sur mon nouveau plugin :

  • Nom et id : Log Cleaner (logcleaner)
  • Il permet de supprimer les logs et les messages trops anciens
  • Langages utilisés : PHP, JS
  • Utilise-t-il un démon ? des dépendances particulières ? des crons ? Non
  • Possède-t-il un panel dédié ? Non
  • Payant || gratuit ? (si vous avez déjà une idée) Gratuit
  • Lien GitHub ou autre site de dépôt (si vous le souhaitez)

Suite à un échange ici : Gestion des Logs et Messages

perso je mettrai l’accent dans le titre sur « message » plus que sur « log » :wink:

côté log, si tu ne vas pas les voir à priori pas trop de chance que ca t’embête … voir tu peux réduire les nb de lignes, …
par contre côté message, avoir un truc jaune qui arrête pas d’augmenter pour des alertes d’il y a 3 semaines, ca peut (peut etre) être utile ! (–> attention à laisser/gérer des exceptions sur certains plugins )

Salut. Merci pour ton retour.
J’ai fait ce plugin pour les messages effectivement.
Et les logs aussi, car parfois, je change un truc et j’ai une ligne d’il y a 1 mois…

Je n’ai pas pensé à paramétrer un filtre sur les plugins à ignorer.
Pourquoi pas effectivement.

Pour le moment, j’ignore les logs suivants car les logs ont un format de date différente :
cron_execution
http.error
update
listener_execution
scenario_execution

Et aussi :
logcleaner car je crois que je ne peux pas écrirer et nettoyer le même fichier.

pour moi ca me semble essentiel
il y a peut etre des msg de certains plugins que tu souhaites absolument voir quelque soit la date

mais ca n’est que mon idée/ressentie :slight_smile:

je ne comprend pas trop ca => s’il y a un soucis et que donc tu mets le log du plugin en exception, que va-t-il se passer quand ton plugin va vouloir « intervenir » dans le log d’un autre mais que cet autre plugin s’en sert? il va être lui-même impacté?

Oui, effectivement, il y a ce cas-là qui peut arriver.
J’utilise les fonctions proposées par le core :
Lecture avec :

$lines = log::get($log, 0, 99999);

et écriture en masse des lignes avec :

log::clear($log);
file_put_contents($log, $content);

Je n’utilise pas de Lock exclusif lors de cette écriture.
Mais je ne vérifie pas le résultat si c’est ok ou non lors de l’écriture.
Il pourrait donc y avoir un effet de bord ici.

Pour la suppression, j’utilise :

$filename = log::getPathToLog('') . DIRECTORY_SEPARATOR . $log;
unlink($filename);

Là non plus, je ne regarde pas le retour de la fonction si c’est ok ou non.

Je t’avoue que comme je ne vérifie pas le retour, je ne peux pas certifier du bon fonctionnement du plugin dans ce cas-là.

Il faudrait si le problème arrive que je comprenne les fonctions de la classe Log
https://doc.jeedom.com/dev/phpdoc/4.3/classes/log.html

Style :

log::remove(  $_log)

Bonjour,

La méthode log::remove() non plus :wink:

J’ai noté dans le fichier TODO.txt les propositions.
Je modifierai ça à un moment donné, afin d’améliorer et faire vivre le plugin.