Sparrow #1 : gestion des logs

Salut,

J’ai été plus que très occupé, c’est pourquoi je n’ai pas avancé sur mes projets jusqu’à ce matin.

Mais aujourd’hui, j’ai repris le projet Sparrow qui, pour rappel est un bot Discord.

Qu’est-ce qu’un log ?

Pour les non initiés, les logs sont des fichiers contenant une traçabilité de tout ou partie du fonctionnement d’un programme.

Gestionnaire de log

Comme tout bon projet, la gestion des logs est un point essentiel. Essentiel pour le debug, mais aussi pour pouvoir observer l’usage de l’app par les utilisateurs (staff et membre dans mon cas).

Pour mes besoins, j’ai défini 2 types de log :

  • Les logs sur fichier : enregistre l’ensemble des logs dans un fichier stocké sur le serveur.
  • Les logs sur channel : publie les logs sur des salons du serveur discord.

Mise en place

J’ai donc créé une classe Javascript qui me permet de faire cela. Via des simples options sur chaque commande et événement, je peux loguer sur les fichiers et (si l’option est activée) sur un ou plusieurs channels :

  • log-global : un salon qui regroupe l’entièreté des logs, ce qui permet d’avoir une chronologie sur l’ensemble des actions loguées.
  • log-cmd-staff : un salon qui regroupe uniquement les logs des commandes staff.
  • log-cmd-user : un salon qui regroupe uniquement les logs des commandes utilisateur.
  • log-event : un salon qui regroupe uniquement les logs des événements du bot (attribution de niveau, de roles, etc).

Sur fichier ça donne ça :

Sur salon ça donne ça :

J’ai ensuite intégré ce système sur l’ensemble des commandes et des événements.

Quelle est la prochaine étape ?

Pour la suite, j’ai prévu de développer le système de self role. Cela permet de distribuer ou de retirer des rôles à des utilisateurs simplement en ajoutant ou retirant des réactions spécifiques sur des messages déterminés.

C’est tout pour aujourd’hui, j’espère que ce petit point vous a intéressé. Si vous avez des questions concernant ce système de log, n’hésitez pas à m’en faire part en commentaire.

À bientôt. 😘