Ajouter le logger
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte00:00:00 :On arrive bientôt à la fin dans cette partie, ce qu'on va faire c'est tout simplement rajouterle logger puisque c'est bien important de toujours avoir un logger surtout quand on va être sur unVPS donc un ordinateur externe auquel on n'aura pas accès, on va pas voir le script se dérouler
00:00:13 :donc c'est bien important d'avoir ces informations stockées quelque part et pour ça donc on va pasutiliser un fichier JSON comme on l'avait fait pour le prix, on va utiliser quelque chose d'unpeu plus robuste et donc un logger. Je vais utiliser le package Loguru donc je vais ouvrir
00:00:26 :mon terminal et je vais l'installer avec pip install loguru, ça va être plus simple que lemodule de base mais vous pouviez aussi passer par le module logging, les lignes de code vont êtreassez similaires. Donc je vais importer ce loguru ici donc on va dire from loguru import logger et
00:00:43 :on va créer quelques variables ici, on va déjà enlever avec logger.remove le logger qui estajouté de base pour avoir un petit peu plus de contrôle sur le niveau du logger qui va afficherdans le terminal. Je vais devoir aussi importer le module 6 parce qu'on va rediriger donc vers
00:00:57 :le 6, le standard output d'erreur du module 6 avec notre logger donc on va faire logger.addet on va rediriger vers le std R comme ceci donc E2R qui signifie erreur et on va mettre le niveauqu'on souhaite avoir donc on va mettre un niveau alors le level il est en minuscules et le niveau
00:01:16 :il est en majuscules donc level égale debug et on va ajouter un autre logger qu'on va mettre surle disque qui va être dans un dossier logs et on va l'appeler tout simplement debug.log. Je vais
00:01:26 :mettre un level cette fois ci de warning, on n'a pas besoin d'avoir forcément toutes les informationsaprès c'est à vous de voir on peut mettre info aussi, à vous de voir le niveau que vous souhaitezavoir de granularité au niveau du logger et on va faire une rotation à partir de un megabit donc
00:01:40 :ça veut dire que dès que le fichier atteint ce poids en fait on va faire une rotation et créerun nouveau fichier pour ne pas avoir des fichiers de log trop important. Donc maintenant qu'on a
00:01:48 :créé notre logger on va pouvoir l'utiliser à l'intérieur de nos différentes fonctions pourexpliquer ce qu'il se passe donc on va faire un logger.info au début de chaque fonction pour
00:01:57 :expliquer qu'on passe dans la fonction et qu'est ce qu'on y fait donc là pour l'instant je vaismettre avec une fstring on va dire writing price et on va insérer le prix ici avec la fstring to filelà normalement donc on n'a pas d'erreur potentielle on n'a pas fait de gestion d'erreur ici mais
00:02:13 :normalement il n'y a pas de raison qu'il se passe quoi que ce soit, on va ensuite aller dans leprice difference on va dire donc logger.info de nouveau getting price difference ensuite ici
00:02:24 :qu'est ce qu'on a là aussi pas grand chose si le fichier existe on récupère sinon on donne unevaleur par défaut il faudrait peut-être là dans ce cas-ci gérer le cas de figure où on auraitprevious price qui est égal à 0 parce qu'on pourrait avoir une 0 division error donc là je
00:02:38 :pourrais faire un try hop essayer de retourner ça et on va faire un except 0 division error etlà on va le récupérer on va faire un logger.error et on va dire tout simplement alors on n'a pas
00:02:50 :besoin de faire une fstring on va juste mettre une chaîne de caractère et on va dire la variableprevious price contient la valeur 0 division impossible et on va faire un raise de e doncon va relancer cette erreur en fait tout simplement on pourrait faire également raise 0 division
00:03:08 :from e pour avoir un lien entre les deux là dans ce cas-ci je veux juste logger l'erreur et relancercette erreur donc on va refaire un raise là c'est juste pour avoir en fait la possibilité d'insérerce logger ici en cas de division par 0 ensuite qu'est ce qu'on a d'autre donc le send alert je
00:03:24 :vais mettre aussi un logger ici info et on va dire sending alert with message et on va insérer lemessage ici et on peut faire également un try except ici en cas de problème avec la requêtedonc je vais faire un try je vais mettre tout ça à l'intérieur on va récupérer la réponse dans une
00:03:42 :variable et on va faire un response.raise for status et ici on peut faire un except versl'exception request exception et j'ai remarqué également que cette exception est directementdisponible dans le module request donc on n'est pas obligé d'aller chercher dans le sous moduleexception on peut faire juste ici on peut le mettre en fait et mettre directement request.request
00:04:04 :exception comme ceci et là encore on va faire un logger.error en disant qu'on n'a pas réussi àfaire l'alerte donc je vais récupérer l'erreur ici et on va dire avec un string couldn't sendalert due to et on va insérer l'erreur ici. due to cette erreur et on va refaire un raise de e
00:04:23 :également ici et voilà on va remettre un petit peu tout ça en forme avec mon petit raccourciclavier que vous retrouvez ici dans code reformat reformat code qui va tout remettre en placenotamment ici vous voyez il y avait un petit décalage je l'ai remis automatiquement enplace avec ce raccourci et ça me semble pas mal on arrive à la fin de notre fonction main
00:04:42 :de base là on va voir on va probablement encore modifier un petit peu tout ça ici peut-être faireune autre fonction intermédiaire donc là je vais pas mettre de logger pour l'instant ici et on vavoir ce qu'on fait par la suite si on modifie cette fonction ou non mais pour l'instant je vais
00:04:55 :rester à ça avec les loggers que j'ai ajouté dans les trois autres fonctions ici pour vérifier queça marche je peux relancer le print ici de ma fonction main pour vérifier si on arrive toujoursà récupérer le prix et qu'on a bien le logger.info qui se fait et je relance donc là on devrait avoir
00:05:10 :le logger qui nous affiche les informations on va attendre un petit peu et est ce qu'on arrivebien déjà récupérer le prix normalement oui et on n'a aucune info alors pourquoi oui parce que en faittout simplement je crois oui voilà c'est parce que j'ai pas mis de logger dans cette fonction main
00:05:26 :et pour l'instant mais on n'écrit pas les données sur le disque si je vais voir voilà on a toujoursnos anciens prix puisqu'effectivement il faut qu'on modifie donc cette fonction qu'on en fasseune autre comme je vous disais pour pouvoir récupérer le prix etc donc je vais juste faire
00:05:38 :un logger.info ici pour vérifier que ça fonctionne bien on va faire un test hop voilà on a bien lelogger qui s'affiche ici là si on va voir on a bien donc le fichier de log qui est créé mais avecrien pour l'instant je vais faire un erreur pour voir si ça fonctionne et là voilà on a bien
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.