Maison  >  Article  >  développement back-end  >  Journalisation avec Python

Journalisation avec Python

Linda Hamilton
Linda Hamiltonoriginal
2024-10-13 22:12:30963parcourir

Logging con Python

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

Créer des 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 qu'ils peuvent enregistrer ces journaux dans un fichier connu.

Comment puis-je l'utiliser ?

Nous utiliserons la bibliothèque de journalisation, qui est 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 sauvegardons chaque log
  • 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 déboguer, il me faut au moins un 10. Donc, avec logging.DEBUG nous veillons à ce que les niveaux à partir de la valeur 10 soient enregistrés.
  • format : format dans lequel les logs sont enregistrés, dans ce cas il s'agit de la date au niveau du message

?? On enregistre le résultat de la somme avec niveau info

?? 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à, puisqu'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 des anomalies

Pour finir…

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

?

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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn