"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Journalisation avec Python

Journalisation avec Python

Publié le 2024-11-08
Parcourir:706

Logging con Python

Journaux, journalisation. Qu'est-ce que c'est et comment enregistrer des événements avec Python

La création de journaux à l'aide de la journalisation nous permet beaucoup de fonctionnalités et de flexibilité dans le code. Dans ce court article, je vous montre les bases et un peu plus pour commencer à l'intégrer dans vos projets.

Qu’est-ce que la journalisation ? Et un journal ?

La journalisation est un moyen de surveiller les événements. Ces événements sont visibles à travers un message descriptif, avec certaines informations variables (la valeur d'une variable ou le résultat d'une fonction) et avec un certain niveau d'importance.
Un journal est comme une impression en Python, mais la différence est qu'ils ne sont pas nécessairement imprimés à l'écran et ces journaux peuvent être enregistrés dans un fichier connu.

Comment puis-je l'utiliser ?

Nous utiliserons la bibliothèque de journalisation, déjà fournie nativement en Python :

import logging

logging.basicConfig(
    filename="log-de-hoy.log",
    encoding="utf-8",
    level=logging.DEBUG,
    format="%(asctime)s %(levelname)s %(message)s"
)

def add(a, b):
    try:
        result = a   b
        logging.info(f"Adding {a} and {b}. Result: {result}")
    except TypeError:
        result = None
        logging.error("The values should be numeric")
    return result

print(add(2, 3)) # 5
print(add(2, "3")) # None

Si nous exécutons ceci, un fichier appelé log-de-hoy.log est généré :

2023-12-08 11:56:30,544 INFO Adding 2 and 3. Result: 5
2023-12-08 11:56:30,544 ERROR The values should be numeric

Explication

?? On démarre la configuration de base : avec logging.basicConfig on déclare :

  • filename : nom du fichier particulier auquel nous voulons ajouter les journaux (par exemple, le nom est log-de-hoy.log, mais idéalement, il devrait avoir un nom descriptif avec la date du jour)
  • encodage : type de format dans lequel nous enregistrons chaque journal
  • niveau : on définit à partir de quel niveau on veut observer. Les différents niveaux sont dans leur documentation et vous verrez qu'ils ont une valeur numérique, logging.INFO étant 20. Si nous avons besoin de debug, j'ai au moins besoin d'un 10. Donc, avec logging.DEBUG, nous assurez-vous que les niveaux à partir de la valeur 10 sont enregistrés.
  • format : format dans lequel les logs sont enregistrés, dans ce cas il s'agit de la date au niveau du message

?? Nous enregistrons le résultat de la somme avec les informations de niveau

?? Nous enregistrons l'erreur d'ajout d'un int et d'une chaîne avec un niveau d'erreur

Pourquoi utiliser la journalisation ?

Peut-être l'imaginez-vous déjà, car il s'agit d'un outil puissant qui nous aidera à identifier rapidement les anomalies. Certains des cas d'utilisation pour l'utiliser sont :

  •  ? Débogage et dépannage
  •  ? Suivi et analyse des performances
  •  ? Audit et conformité
  •  ? Sécurité et détection d'anomalies

Pour finir…

C'est facile à mettre en œuvre, n'est-ce pas ? Est-ce un plus de l'intégrer dans n'importe quel projet et d'arrêter d'utiliser autant d'imprimés ?.

Le module de journalisation offre bien plus que le peu que j'ai montré ici. Mais ce peu est largement suffisant ! Si nécessaire, la documentation explique assez bien d'autres cas, méthodes, configurations, etc.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/javicerodriguez/logging-con-python-2j7m?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3