Maison >développement back-end >Tutoriel Python >Module de journalisation Python démystifié : maîtriser l'art de la journalisation

Module de journalisation Python démystifié : maîtriser l'art de la journalisation

WBOY
WBOYavant
2024-03-07 21:55:13337parcourir

Python logging 模块揭秘:掌控日志记录的艺术

python Introduction au module de journalisation

Le module

logging est un puissant outil de logginglogging dans la bibliothèque standard Python. Il fournit un moyen standardisé et configurable de consigner les événements, les erreurs et les informations de débogage des applications. En utilisant le module de journalisation, les développeurs peuvent facilement suivre le comportement des applications, simplifier le dépannage et améliorer la qualité du code.

Niveau de connexion

Le module de journalisation définit plusieurs niveaux de journalisation pour indiquer l'importance des messages :

  • DEBUG : informations de débogage pour enregistrer le comportement détaillé de l'application.
  • INFO : Informations générales, utilisées pour enregistrer le fonctionnement normal de l'application.
  • AVERTISSEMENT : message d'avertissement utilisé pour enregistrer des problèmes potentiels.
  • ERROR : message d'erreur utilisé pour enregistrer les erreurs d'application.
  • CRITIQUE : message d'erreur critique utilisé pour enregistrer les erreurs critiques qui interrompent l'application.

Configurer la journalisation

Le module de journalisation permet de configurer le comportement de journalisation de plusieurs manières :

Enregistreur racine :

import logging

# 创建根记录器
root_logger = logging.getLogger()

# 设置日志记录级别
root_logger.setLevel(logging.INFO)

# 添加控制台处理程序
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
console_handler.setFORMatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))
root_logger.addHandler(console_handler)

# 添加文件处理程序
file_handler = logging.FileHandler("my_app.log")
file_handler.setLevel(logging.WARNING)
file_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))
root_logger.addHandler(file_handler)

Enregistreur personnalisé :

# 创建自定义记录器
my_logger = logging.getLogger("my_app.module1")

# 设置日志记录级别
my_logger.setLevel(logging.DEBUG)

# 添加流处理程序
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
stream_handler.setFormatter(logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s"))
my_logger.addHandler(stream_handler)

Enregistrement des messages

Une fois les paramètres de journalisation configurés, les développeurs peuvent enregistrer les messages en utilisant les méthodes suivantes :

  • debug()
  • info()
  • warning()
  • error()
  • critical()

Chaque méthode reçoit un message string et enregistre le message au niveau de journalisation spécifié.

my_logger.info("应用程序已启动")

Filtre de journalisation

Le module de journalisation fournit un mécanisme pour filtrer les messages du journal et enregistrer uniquement les messages qui remplissent certaines conditions. Les filtres peuvent être basés sur le niveau de journalisation, le texte du message ou d'autres critères personnalisés.

# 创建一个过滤日志记录级别的过滤器
level_filter = logging.Filter()
level_filter.filter = lambda record: record.levelno >= logging.WARNING

# 将过滤器添加到记录器
my_logger.addFilter(level_filter)

Conclusion

Le module de journalisation Python est un outil puissant pour enregistrer les événements d'application et les informations de débogage. En comprenant ses fonctionnalités et ses options de configuration, les développeurs peuvent concevoir des applications robustes et maintenables. En fournissant une visualisationcomplète du comportement de l'application, le module de journalisation contribue à améliorer la qualité du code, à simplifier le dépannage et à améliorer le processus de débogage.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer

Articles Liés

Voir plus