Maison >développement back-end >Tutoriel Python >Module de journalisation Python : tutoriels de niveau expert, du débutant au compétent

Module de journalisation Python : tutoriels de niveau expert, du débutant au compétent

WBOY
WBOYavant
2024-03-08 08:34:02394parcourir

Python logging 模块:专家级教程,从入门到精通

Présentation

Le module

logging est la bibliothèque standard pour logginglogging dans python. Il fournit une interface unifiée pour la journalisation des événements dans les applications et permet aux développeurs de définir un contrôle précis des niveaux de journalisation, de formater les messages des journaux et de sortir les journaux vers diverses destinations telles que des fichiers, des consoles ou des réseaux socket).

Démarrage

Créer un enregistreur

Pour démarrer la journalisation, vous devez d'abord créer un objet enregistreur. L'enregistreur peut être identifié par logging.getLogger(name) 函数创建,其中 name qui est un identifiant string.

import logging

# 创建一个名为 "my_logger" 的 logger
logger = logging.getLogger("my_logger")

Enregistrer les messages du journal

Les messages de journal peuvent être enregistrés en utilisant la méthode logger.log(level, msg, *args, **kwargs), où :

  • level : Le niveau du message du journal.
  • msg : Enregistrer les messages.
  • *args**kwargs : Paramètre facultatif utilisé pour formater les messages du journal.
logger.info("程序已启动")
logger.error("发生错误!")

Niveau de connexion

Le module

logging définit les niveaux de journalisation suivants (du plus bas au plus élevé) :

  • DEBUG : informations détaillées à des fins de débogage.
  • INFO : pour les messages d'application réguliers.
  • AVERTISSEMENT : Utilisé pour attirer l'attention sur un problème.
  • ERROR : pour les erreurs et les exceptions.
  • CRITIQUE : pour les erreurs critiques ou les plantages d'applications.
  • NOTSET : désactivez la journalisation.

Le niveau de journalisation peut être réglé sur logger.level 属性。例如,要将 my_logger 的级别设置为 WARNING en utilisant :

logger.level = logging.WARNING

Formateur

Les formateurs sont utilisés pour contrôler l'apparence des messages de journal. Les formateurs peuvent être créés via la classe logging.F<code>logging.F<strong class="keylink">ORM</strong>atterORM

atter, qui a les paramètres suivants :
  • fmt
  •  : La chaîne de format du message de journal.
  • datefmt
  •  : chaîne de format pour la date et l'heure (facultatif).

# 创建一个格式化器,包含时间戳、日志级别和日志消息
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")

Processeur

Les processeurs sont utilisés pour envoyer des messages de journal vers des destinations spécifiques. Le module de journalisation fournit des gestionnaires prêts à l'emploi, tels que :
  • logging.StreamHandler
  •  : Sortie des messages du journal sur la console.
  • logging.FileHandler
  •  : Sortie des messages du journal dans un fichier.
  • logging.<strong class="keylink">Socket</strong>Handlerlogging.
  • Socket
Handler : génère les messages du journal sur une socket réseau.

# 创建一个处理器,将日志消息输出到控制台
handler = logging.StreamHandler()

# 将格式化器添加到处理器
handler.setFormatter(formatter)

# 将处理器添加到 logger
logger.addHandler(handler)

Filtre

    Les filtres sont utilisés pour filtrer les messages du journal en fonction de conditions spécifiques. Le module de journalisation fournit les filtres suivants :
  • logging.Filter
  •  : Filtre de base, autorisez ou refusez les messages du journal. logging.LevelFilter
  •  : Filtrez les messages du journal en fonction du niveau de journalisation. logging.MessageFilter
 : Filtrez les messages du journal en fonction des messages du journal eux-mêmes.

# 创建一个过滤器,仅允许 INFO 和 WARNING 级别的日志消息
filter = logging.LevelFilter(logging.INFO)

# 将过滤器添加到处理器
handler.addFilter(filter)

Utilisation avancée

Journalisation hiérarchique

Python

Le module de journalisation prend en charge la journalisation hiérarchique, dans laquelle un enregistreur peut hériter des propriétés et du comportement de son enregistreur parent. Cela permet de créer une structure de journalisation avec différents niveaux de granularité de journalisation.

Niveaux de journalisation personnaliséslogging.addLevelName(level_name, level_value)

Des niveaux de journalisation personnalisés peuvent également être créés pour mieux répondre aux besoins spécifiques de votre application. Ceci peut être réalisé avec la fonction

.

Module de journalisation étendu

Le module de journalisation peut être étendu avec des classes et des fonctions personnalisées pour implémenter des fonctionnalités de journalisation plus avancées ou spécifiques. Par exemple, vous pouvez créer vos propres processeurs ou filtres pour répondre à des exigences spécifiques.

Conclusion Le module de journalisation Python est un outil puissant pour se connecter aux applications. Il offre flexibilité et personnalisation, permettant aux développeurs de créer des systèmes de journalisation en fonction des besoins spécifiques de leurs applications. En suivant les principes de base et les techniques avancées décrites dans ce

tutoriel🎜, vous pouvez tirer le meilleur parti du module de journalisation et obtenir une journalisation efficace et informative pour vos applications. 🎜

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