recherche
Maisondéveloppement back-endTutoriel PythonModule Python Logging en action : créer des applications de journalisation robustes

Module Python Logging en action : créer des applications de journalisation robustes

Feb 21, 2024 am 09:12 AM
python调试日志记录可扩展性可维护性

Python Logging 模块实战:构建健壮的日志记录应用程序

python Le module de journalisation est un outil puissant pour la journalisation des applications , qui aide les développeurs à enregistrer facilement les événements, les erreurs et les informations dans les applications. En écrivant les informations de journalisation dans un fichier ou dans la console, le module Logging peut fournir des informations précieuses sur le comportement de l'application, améliorant ainsi la robustesse et la maintenabilité de l'application.

Configurer la journalisation

La configuration du module Logging nécessite de passer la fonction logging.basicConfig(). Cette fonction accepte les paramètres suivants :

  • nom du fichier : Chemin du fichier journal
  • level : Niveau de journalisation (tel que DEBUG, INFO, ATTENTION)
  • format : Format des informations d'enregistrement du journal
  • datefmt : format d'horodatage

Par exemple, le code suivant configure le module Logging pour écrire toutes les informations de journalisation dans un fichier nommé "app.log" :

import logging

logging.basicConfig(filename="app.log", level=logging.DEBUG, fORMat="%(asctime)s %(levelname)s %(message)s", datefmt="%Y-%m-%d %H:%M:%S")

Niveau de connexion

Le module Logging prend en charge cinq niveaux de journalisation, par ordre croissant de gravité :

  • DEBUG
  • INFO
  • AVERTISSEMENT
  • ERREUR
  • CRITIQUE

Vous pouvez enregistrer uniquement les messages d'erreur en ajoutant level 参数设置为相应的级别来配置日志记录信息。例如,logging.DEBUG 级别记录所有日志记录信息,而 logging.ERROR.

Méthode de journalisation

Le module Logging propose les méthodes de journalisation suivantes :

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

Ces méthodes acceptent que le message soit enregistré en paramètre. Par exemple, le code suivant enregistre un message de niveau INFO :

logging.info("Application started successfully")

Poignée de journalisation

En plus des fonctions basicConfig(), le module Logging permet également la création de gestionnaires de journalisation personnalisés. Le handle peut être utilisé pour se connecter à différentes cibles telles qu'une console, un fichier ou un serveur distant.

Pour créer une poignée, utilisez la fonction logging.getLogger(). Par exemple, le code suivant crée un handle nommé "my_logger" :

my_logger = logging.getLogger("my_logger")

Le handle peut ensuite être ajouté à la liste des handles en utilisant la méthode addHandler(). Par exemple, le code suivant ajoute un handle à la console :

my_logger.addHandler(logging.StreamHandler())

Filtre de journalisation

Les filtres de journalisation peuvent être utilisés pour filtrer les informations de journalisation en fonction de certaines conditions. Les filtres peuvent être basés sur le niveau du message, la source ou d'autres critères personnalisés.

Pour créer un filtre, utilisez la classe logging.Filter. Les filtres peuvent être passés comme arguments à la fonction logging.Filter 类。过滤器可以作为 addHandler(). Par exemple, le code suivant crée un filtre qui enregistre uniquement les messages de niveau INFO ou supérieur :

class MyFilter(logging.Filter):
def filter(self, record):
return record.levelno >= logging.INFO

my_logger.addHandler(logging.StreamHandler(MyFilter()))

Bonnes pratiques

Voici quelques bonnes pratiques pour utiliser le module Logging :

  • Toujours configurer la journalisation : Assurez-vous de configurer le module Logging dans votre application pour éviter tout comportement inattendu.
  • Utilisez le niveau de journalisation approprié : Choisissez le niveau de journalisation correct en fonction de la gravité du message.
  • Utilisation des poignées de journalisation : Créez des gestionnaires de journalisation personnalisés pour acheminer les informations de journalisation vers plusieurs destinations.
  • Utilisez des filtres de journalisation : Filtrez les messages de journalisation pour enregistrer uniquement les messages pertinents.
  • Consignation des erreurs et des exceptions : Enregistrez toujours les erreurs et les exceptions pour faciliter le débogage et le dépannage.

Conclusion

Python Le module Logging est un outil inestimable pour créer des applications robustes et maintenables. En enregistrant efficacement le comportement des applications, le module Logging facilite la détection et la résolution précoces des problèmes, améliorant ainsi la fiabilité et la stabilité des applications. En suivant les meilleures pratiques et techniques décrites dans cet article, les développeurs peuvent maximiser les avantages du module Logging et créer des applications dotées de puissantes capacités de journalisation.

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
Python: une plongée profonde dans la compilation et l'interprétationPython: une plongée profonde dans la compilation et l'interprétationMay 12, 2025 am 12:14 AM

Pythonusahybridmodelofcompilation et interprétation: 1) thepythoninterpreterCompileSourCodeIntOplatform-indépendantBytecode.2) thepythonvirtualmachine (pvm) there examenesthisbytecode, équilibrage de l'usage de la performance.

Python est-il une langue interprétée ou compilée, et pourquoi est-ce important?Python est-il une langue interprétée ou compilée, et pourquoi est-ce important?May 12, 2025 am 12:09 AM

Pythonisbothinterpretedand compiled.1) il est composédToByteCodeForportabilityAcrosplatforms.2) theytecodeisthenter interprété, permettant à OrdayNamictypingAndRapidDevelopment, bien que MaybeSlowerSlowerSwower, aisance.

Pour Loop vs While Loop in Python: les principales différences expliquéesPour Loop vs While Loop in Python: les principales différences expliquéesMay 12, 2025 am 12:08 AM

Forloopsareideal quand vous savez que l'immatriculation des adressages a une avance, tandis que ce qui est de savoir si

Pour et bien que les boucles: un guide pratiquePour et bien que les boucles: un guide pratiqueMay 12, 2025 am 12:07 AM

Forloopsaseesesed whenthenUmberoFitations dissownininadvance, tandis que celle-ci a été utilisé sur les éléments de la dispense

Python: Est-ce vraiment interprété? Démystifier les mythesPython: Est-ce vraiment interprété? Démystifier les mythesMay 12, 2025 am 12:05 AM

Pythonisnotpurelyinterpreted; itusahybridapproachofbytecocecompilation andruntimeinterpretation.1) pythoncompilessourcecodeintoBytecode, whichStHenexEcutedythepythonVirtualMachine (pvm) .2)

Python concaténate liste avec le même élémentPython concaténate liste avec le même élémentMay 11, 2025 am 12:08 AM

ToconcaténateListSinpythonWithTheSameElements, Utilisation: 1) L'opératorTokeEpDuplicate, 2) ASETTOREMOVEUPLICATION, OR3) ListComprehensionfor pour la réduction de la réduction de la manière dont les directives.

Interprété vs Langues compilées: Place de PythonInterprété vs Langues compilées: Place de PythonMay 11, 2025 am 12:07 AM

PythonisaninterpretedLanguage, offrant une volonté et une flexibilité de la fin

Pour et pendant que les boucles: quand utilisez-vous chacun dans Python?Pour et pendant que les boucles: quand utilisez-vous chacun dans Python?May 11, 2025 am 12:05 AM

UseforloopswhenthenUmberoFitationsknowninadvance, andwhileloopswHeniterationsDepenSonacondition.1) forloopsareidealforseenceslikelistsorranges.2) whileLoopsSuitscenarioswheretheloopContiesUnUesUsUlaspecificconditMetmecemet, utilesforUSERIRSURSoralgorititititititititititititititititittorititititititittorititititititititittorititititititititittoritititititititititititititititititittitititititititititititititititititittitititititititititititititititititittitititititititititititititititititittititititititititititititititititittititet

See all articles

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel