Maison développement back-end Tutoriel Python Module de journalisation Python : point de vue d'expert, résolvant tous les mystères

Module de journalisation Python : point de vue d'expert, résolvant tous les mystères

Mar 08, 2024 am 09:25 AM
错误处理 日志记录 bibliothèque standard Performances des applications suivi des événements

Python logging 模块:专家视角,破解所有谜团

Présentation du module de journalisation Python

Le module

logging est un outil polyvalent dans la bibliothèque standard python pour journaliser les événements et les erreurs qui se produisent dans votre application. Il fournit un ensemble complet de fonctionnalités qui permettent aux développeurs de personnaliser le comportement de journalisation des logs et d'envoyer facilement les événements de journal à diverses destinations telles que des fichiers, des consoles ou des serveurs distants.

Niveau de connexion

Le module

logging définit plusieurs niveaux de journalisation pour classer les événements enregistrés :

  • DEBUG : Utilisé pour enregistrer des informations de débogage détaillées.
  • INFO : Utilisé pour enregistrer des messages d'information généraux.
  • ATTENTION : Utilisé pour enregistrer des problèmes ou des anomalies potentiels.
  • ERROR : Utilisé pour enregistrer les erreurs réelles.
  • CRITIQUE : Utilisé pour enregistrer les erreurs critiques susceptibles de provoquer le crash de l'application.

Bûcherons et manutentionnaires

Les composants principaux du module de journalisation sont les enregistreurs et les gestionnaires :

  • Logger : Responsable de la génération et de la gestion des événements de journal. Créez un enregistreur en appelant logging.getLogger().
  • Handler : Responsable du traitement des événements du journal et de leur envoi vers une destination spécifique. Les gestionnaires courants incluent FileHandler(写入文件)、StreamHandler(写入控制台)和 SMTPHandler (envoi par e-mail).

Journalisation des événements

Un événement de journalisation est un message de journal unique contenant les champs suivants :

  • Niveau de journalisation : Un des cinq niveaux ci-dessus.
  • Message : Message texte à enregistrer.
  • Horodatage : L'heure à laquelle l'événement s'est produit.
  • Source : Le module ou la classe où l'événement s'est produit.

Configurer la journalisation

Le module de journalisation peut être configuré de différentes manières, notamment :

  • Utilisation logging.basicConfig() : C'est la méthode la plus simple, elle configure une configuration par défaut pour le logger racine.
  • Utilisation de logging.config.dictConfig() : permet de configurer la journalisation à partir d'un dictionnaire.
  • Utilisez logging.config.fileConfig() : Chargez la configuration de la journalisation à partir d'un fichier de configuration.

Bonnes pratiques

Il y a quelques bonnes pratiques à suivre lors de l'utilisation du module de journalisation :

  • Utilisez des niveaux de journalisation significatifs : Choisissez le niveau de journalisation adapté à l'importance de l'événement.
  • Utilisez des chaînes formatées : Insérez des variables dans les messages du journal pour améliorer la lisibilité.
  • Inclure des informations contextuelles : Inclure des informations supplémentaires sur l'événement, telles que le nom du module et le numéro de ligne.
  • Vérifiez régulièrement les journaux : Vérifiez régulièrement les journaux pour détecter les erreurs et les problèmes de performances.

Code démo

L'exemple suivant montre comment utiliser le module de journalisation pour enregistrer les messages d'erreur :

import logging

# 创建一个日志记录器
logger = logging.getLogger(__name__)

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

# 创建一个文件处理程序
handler = logging.FileHandler("errors.log")

# 设置处理程序格式
fORMatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)

# 添加处理程序到日志记录器
logger.addHandler(handler)

# 记录一个错误消息
logger.error("An error occurred!")
Copier après la connexion

Conclusion

Le module

logging est un outil essentiel pour implémenter une fonctionnalité de journalisation robuste et déboguable dans les applications Python. En comprenant ses fonctionnalités, ses options de configuration et ses meilleures pratiques, les développeurs peuvent gérer efficacement les journaux et améliorer les performances et la capacité de débogage des 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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser std :: en C++ Comment utiliser std :: en C++ May 09, 2024 am 03:45 AM

std est l'espace de noms en C++ qui contient les composants de la bibliothèque standard. Pour utiliser std, utilisez l'instruction "using namespace std;". L'utilisation de symboles directement à partir de l'espace de noms std peut simplifier votre code, mais n'est recommandée que lorsque cela est nécessaire pour éviter la pollution de l'espace de noms.

Comment gérer efficacement les scénarios d'erreur en C++ grâce à la gestion des exceptions ? Comment gérer efficacement les scénarios d'erreur en C++ grâce à la gestion des exceptions ? Jun 02, 2024 pm 12:38 PM

En C++, la gestion des exceptions gère les erreurs de manière gracieuse via des blocs try-catch. Les types d'exceptions courants incluent les erreurs d'exécution, les erreurs logiques et les erreurs hors limites. Prenons l'exemple de la gestion des erreurs d'ouverture de fichier. Lorsque le programme ne parvient pas à ouvrir un fichier, il lève une exception, imprime le message d'erreur et renvoie le code d'erreur via le bloc catch, gérant ainsi l'erreur sans mettre fin au programme. La gestion des exceptions offre des avantages tels que la centralisation de la gestion des erreurs, la propagation des erreurs et la robustesse du code.

Pointeurs intelligents C++ : une analyse complète de leur cycle de vie Pointeurs intelligents C++ : une analyse complète de leur cycle de vie May 09, 2024 am 11:06 AM

Cycle de vie des pointeurs intelligents C++ : Création : Les pointeurs intelligents sont créés lors de l'allocation de mémoire. Transfert de propriété : Transférer la propriété via une opération de déménagement. Libération : la mémoire est libérée lorsqu'un pointeur intelligent sort de la portée ou est explicitement libéré. Destruction d'objet : lorsque l'objet pointé est détruit, le pointeur intelligent devient un pointeur invalide.

Comment effectuer la gestion des erreurs et la journalisation dans la conception de classes C++ ? Comment effectuer la gestion des erreurs et la journalisation dans la conception de classes C++ ? Jun 02, 2024 am 09:45 AM

La gestion des erreurs et la journalisation dans la conception des classes C++ incluent : Gestion des exceptions : détection et gestion des exceptions, utilisation de classes d'exceptions personnalisées pour fournir des informations d'erreur spécifiques. Code d'erreur : utilisez un entier ou une énumération pour représenter la condition d'erreur et renvoyez-la dans la valeur de retour. Assertion : vérifiez les conditions préalables et postérieures et lancez une exception si elles ne sont pas remplies. Journalisation de la bibliothèque C++ : journalisation de base à l'aide de std::cerr et std::clog. Bibliothèques de journalisation externes : intégrez des bibliothèques tierces pour des fonctionnalités avancées telles que le filtrage de niveau et la rotation des fichiers journaux. Classe de journal personnalisée : créez votre propre classe de journal, résumez le mécanisme sous-jacent et fournissez une interface commune pour enregistrer différents niveaux d'informations.

Meilleurs outils et bibliothèques pour la gestion des erreurs PHP ? Meilleurs outils et bibliothèques pour la gestion des erreurs PHP ? May 09, 2024 pm 09:51 PM

Les meilleurs outils et bibliothèques de gestion des erreurs en PHP incluent : Méthodes intégrées : set_error_handler() et error_get_last() Boîtes à outils tierces : Whoops (débogage et formatage des erreurs) Services tiers : Sentry (rapport et surveillance des erreurs) Tiers bibliothèques : PHP-error-handler (journalisation des erreurs personnalisées et traces de pile) et Monolog (gestionnaire de journalisation des erreurs)

Comment utiliser malloc en langage C Comment utiliser malloc en langage C May 09, 2024 am 11:54 AM

La fonction malloc() en langage C alloue un bloc mémoire dynamique et renvoie un pointeur vers l'adresse de départ. Utilisation : Allouer de la mémoire : malloc(size) alloue un bloc mémoire de la taille spécifiée. Travailler avec la mémoire : accéder et manipuler la mémoire allouée. Libérer la mémoire : free(ptr) libère la mémoire allouée. Avantages : Permet l'allocation dynamique de la mémoire requise et évite les fuites de mémoire. Inconvénients : Le renvoi de NULL en cas d'échec de l'allocation peut entraîner le blocage du programme. Une gestion minutieuse est nécessaire pour éviter les fuites de mémoire et les erreurs.

Comment utiliser le wrapper d'erreur de Golang ? Comment utiliser le wrapper d'erreur de Golang ? Jun 03, 2024 pm 04:08 PM

Dans Golang, les wrappers d'erreurs vous permettent de créer de nouvelles erreurs en ajoutant des informations contextuelles à l'erreur d'origine. Cela peut être utilisé pour unifier les types d'erreurs générées par différentes bibliothèques ou composants, simplifiant ainsi le débogage et la gestion des erreurs. Les étapes sont les suivantes : Utilisez la fonction error.Wrap pour envelopper les erreurs d'origine dans de nouvelles erreurs. La nouvelle erreur contient des informations contextuelles de l'erreur d'origine. Utilisez fmt.Printf pour générer des erreurs encapsulées, offrant ainsi plus de contexte et de possibilités d'action. Lors de la gestion de différents types d’erreurs, utilisez la fonction erreurs.Wrap pour unifier les types d’erreurs.

Comment tester la gestion des erreurs dans Golang ? Comment tester la gestion des erreurs dans Golang ? Jun 03, 2024 pm 05:00 PM

Les méthodes courantes pour tester la gestion des erreurs dans Go incluent : l'utilisation de error.Error() pour vérifier si le message d'erreur est une chaîne vide ; l'utilisation de testing.T.FatalError() et testing.T.Errorf() pour afficher le message d'erreur et le marquer ; le test est considéré comme ayant échoué ou continue l'exécution ; utilisez les fonctions d'assertion require, telles que require.NoError et require.EqualError, pour arrêter le test en cas d'échec.

See all articles