Académique Documents
Professionnel Documents
Culture Documents
Un logger, tel que celui proposé par la bibliothèque Winston pour Node.js et React.js, est un outil
essentiel pour enregistrer des informations sur le comportement et le fonctionnement d'une
application. Il permet de capturer des messages de différentes gravités, comme des informations de
débogage, des avertissements ou des erreurs, et de les stocker de manière organisée, souvent dans
des fichiers journaux. Cela offre plusieurs avantages, tels que la capacité à diagnostiquer et à résoudre
rapidement les problèmes, à suivre les performances de l'application et à fournir des données
exploitables pour l'analyse et la surveillance.
Comment l’utiliser ?
Tout d’abord il faut installer le package « Winston » . dans votre terminal, taper la commande
suivante :
//---logging function---
module.exports = {customerLogger};
explication du code :
2- const customerLogger = createLogger({ ... }) : Cette ligne crée une instance de logger
personnalisée appelée customerLogger. L'argument de createLogger() est un objet de
configuration qui spécifie les transports et les formats à utiliser.
3- transports: [...] : Cette propriété spécifie les transports à utiliser pour enregistrer les journaux.
Dans cet exemple, deux transports sont définis :
Un transport de fichier pour enregistrer les journaux d'information dans un fichier nommé
customer.log.
Un autre transport de fichier pour enregistrer les journaux d'erreur dans un fichier distinct
nommé customer-error.log. Chaque transport est configuré avec un niveau de journalisation
spécifique (level) et un format qui inclut un horodatage et convertit les journaux en format
JSON.
4- module.exports = {customerLogger}; : Cette ligne exporte l'instance du logger
customerLogger afin qu'elle puisse être utilisée dans d'autres modules de l'application. Cela
permet à d'autres parties de l'application d'accéder au logger et de l'utiliser pour enregistrer
des journaux dans les fichiers spécifiés.
Maintenant dans votre fonction ajouter votre logger, mais tout d’abord il faut l’importer :
Par exemple, on veut tester la fonction qui affiche la liste des produits, s’il y a des erreurs ou pas :
Ce fragment représente un message de journalisation formaté au format JSON, tel que défini dans la
configuration du logger. Voici une explication détaillée de chaque partie :
1. `"level":"info"` : Cela indique le niveau de gravité du message. Dans cet exemple, le niveau est défini
sur "info" , ce qui signifie qu'il s'agit d'un message informatif. Les niveaux de gravité couramment
utilisés incluent "info" , "warn" (avertissement) et "error" (erreur), parmi d'autres.
2. `"message":"Successfully got the list of customers."` : Cette partie contient le contenu principal du
message de journalisation. Il s'agit du texte qui décrit l'événement ou l'action qui s'est produite. Dans
ce cas, le message indique que la liste des produits a été récupérée avec succès.
3. `"timestamp":"2024-02-28T15:51:25.003Z"` : Il s'agit de l'horodatage au moment où le message de
journalisation a été enregistré. Dans cet exemple, l'horodatage est au format ISO 8601, qui comprend
la date, l'heure, les minutes, les secondes et les millisecondes, ainsi que le fuseau horaire Z (UTC).
Maintenant on testant l’erreur on va changer le nom de notre table et on va tester si le logg va
enregistrer l’erreur :
Dans la photo, on a changer le nom du table « Product » à « Products » d’où si on a effectuer la requête
une erreur va se produit et le log doit capturer cet erreur.
Dans Postman :
Ce message de journalisation est également formaté au format JSON, et il contient les mêmes
éléments qu’on a mentionné déjà :
"level":"error" : Comme précédemment, cela indique le niveau de gravité du message, qui est défini
sur "error" dans ce cas. Cela signifie qu'une erreur s'est produite lors de l'événement décrit dans le
message.