Journalisation avec Python

Linda Hamilton
Libérer: 2024-10-13 22:12:30
original
949 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!