Maison  >  Article  >  développement back-end  >  Meilleures pratiques pour le module de journalisation Python : écriture de code propre et maintenable

Meilleures pratiques pour le module de journalisation Python : écriture de code propre et maintenable

WBOY
WBOYavant
2024-02-21 09:33:031097parcourir

Python Logging 模块的最佳实践:编写干净、可维护的代码

Niveau de connexion

Loglevel détermine quels messages seront affichés dans le journal. python Le module de journalisation propose 6 niveaux de journalisation (de faible à élevé) :

DEBUG
INFO
WARNING
ERROR
CRITICAL
FATAL

De manière générale, les niveaux suivants sont recommandés :

  • DEBUG : Utilisé pour les informations de débogage, utilisé uniquement pendant la phase de développement
  • INFO : Utilisé pour les informations générales, l'état et les opérations du système d'enregistrement
  • AVERTISSEMENT : pour les problèmes potentiels qui peuvent causer des problèmes mais ne perturberont pas immédiatement le système
  • ERROR : Utilisé pour les erreurs et les exceptions qui nécessitent une attention et une résolution
  • CRITIQUE : est utilisé pour les erreurs graves qui entraîneront une interruption du système

Format du journal

Le format du journal détermine les informations contenues dans le message du journal. Le module de journalisation Python fournit une variété de formateurs prédéfinis, tels que :

logging.FORMatter()
logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")

Le formateur peut également être personnalisé pour ajouter des informations supplémentaires telles que l'ID du processus, le nom du thread ou la pile d'appels.

Traitement des journaux

Le traitement des journaux détermine la manière dont les messages de journal sont générés et traités. Le module Python Logging fournit une variété de processeurs, tels que :

  • StreamHandler : Sortie des messages du journal vers stdout ou stderr
  • FileHandler : Sortie des messages du journal dans un fichier
  • RotatingFileHandler : Sortie des messages du journal dans un fichier et défilement automatique lorsque le fichier atteint une certaine taille
  • SocketHandler : Envoie des messages de journal à l'hôte distant via le réseau

Plusieurs processeurs peuvent être utilisés simultanément pour traiter les messages du journal de différentes manières.

Bonnes pratiques

Voici quelques bonnes pratiques pour le module Python Logging :

  • Utilisez le niveau de journalisation approprié : Choisissez le niveau de journalisation approprié en fonction de l'importance du message.
  • Format de journal personnalisé : Ajoutez des informations supplémentaires si nécessaire pour améliorer la lisibilité et la traçabilité du journal.
  • Utilisez plusieurs processeurs : Utilisez plusieurs processeurs en même temps pour traiter les messages de journal de différentes manières, par exemple en enregistrant les messages d'erreur dans un fichier et en affichant les informations de débogage sur la console.
  • Utilisation du module logging.config : Utilisez ce module pour configurer des paramètres de journalisation complexes, comme l'utilisation d'un fichier de configuration ou de la fonction dictConfig().
  • Suivez les conventions de journalisation : Utilisez des formats et des niveaux de journalisation cohérents dans toute votre base de code pour améliorer la lisibilité et la maintenabilité du code.
  • Enregistrer la trace de la pile pour les exceptions : Lors de la journalisation d'une erreur ou d'une exception, incluez une trace de la pile pour faciliter le débogage.
  • Utilisez judicieusement les journaux de débogage : Utilisez le niveau DEBUG uniquement lorsque cela est nécessaire, sinon beaucoup de bruit sera généré.
  • Examinez régulièrement les journaux : Examinez régulièrement les journaux pour détecter les erreurs, les avertissements ou toute autre information nécessitant une attention particulière.

Exemple de code

Voici un exemple simple utilisant le module Python Logging :

import logging

# 创建一个 logger,传递名称为 my_app
logger = logging.getLogger("my_app")

# 设置日志级别为 INFO
logger.setLevel(logging.INFO)

# 创建一个流处理器,将日志消息输出到 stdout
handler = logging.StreamHandler()
handler.setLevel(logging.INFO)

# 创建一个格式器
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)

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

# 记录一條 INFO 級別的日誌信息
logger.info("This is an info message")

En suivant ces bonnes pratiques, vous pouvez utiliser efficacement le module Python Logging pour enregistrer des événements dans votre application, améliorant ainsi la maintenabilité, la lisibilité et la débogabilité de votre code.

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