Table des matières
Comprendre le module de journalisation
Le module de journalisation définit plusieurs niveaux de journalisation pour spécifier la gravité des messages :
Le gestionnaire de journaux est chargé d'envoyer les messages de journal à une destination spécifique, telle qu'un fichier, une console ou un
Le formateur de journal définit le format du message du journal, y compris l'horodatage, le niveau de journalisation et le contenu du message. Le module de journalisation fournit la fonction logging.F
Maison développement back-end Tutoriel Python Démystifier le module de journalisation Python : un guide complet

Démystifier le module de journalisation Python : un guide complet

Mar 07, 2024 pm 09:30 PM
日志记录 processeur de journaux Niveau de journalisation formateur de journaux

揭开 Python logging 模块的神秘面纱:全方位指南

Comprendre le module de journalisation

Le module de journalisation

python est un loggingloggingtool intégré, flexible et efficace. Il fournit une interface de journalisation standardisée qui permet aux développeurs de consigner facilement les informations, les erreurs et les avertissements des applications. Les concepts de base du module de journalisation incluent les niveaux de journalisation, les processeurs de journaux et les formateurs de journaux. Niveau de connexion

Le module de journalisation définit plusieurs niveaux de journalisation pour spécifier la gravité des messages :

    DEBUG :
  • Fournit les informations les plus détaillées sur les problèmes de débogage
  • INFO :
  • Enregistrez des informations générales, telles que le déroulement du programme
  • AVERTISSEMENT :
  • Avertissement concernant des problèmes potentiels, mais l'application fonctionnera toujours normalement
  • ERREUR :
  • Erreur de journalisation, l'application risque de ne pas fonctionner correctement
  • CRITIQUE :
  • Enregistrez les erreurs critiques et l'application risque de ne pas continuer à fonctionner
  • Processeur de journaux

Le gestionnaire de journaux est chargé d'envoyer les messages de journal à une destination spécifique, telle qu'un fichier, une console ou un

réseau

. Le module de journalisation fournit une variété de gestionnaires, notamment :

import logging

# 将日志记录到文件
file_handler = logging.FileHandler("my_log.log")

# 将日志记录到控制台
console_handler = logging.StreamHandler()

# 将日志记录到套接字
Socket_handler = logging.SocketHandler("localhost", 5000)
Copier après la connexion
Formateur de journal

Le formateur de journal définit le format du message du journal, y compris l'horodatage, le niveau de journalisation et le contenu du message. Le module de journalisation fournit la fonction logging.F</h3>ORM<p>atter() pour construire le formateur : logging.F<strong class="keylink">ORM</strong>atter()
import logging

# 默认格式器:时间戳、日志级别、消息内容
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
Copier après la connexion

Configurer le module de journalisation

Le module de journalisation se configure via :

  • Configuration de base : Utilisez la fonction pour configurer rapidement la journalisation. logging.basicConfig()
  • Configuration personnalisée : Créez une instance et configurez manuellement le processeur et le formateur. logging.Logger
  • Utilisation des fichiers de configuration de journalisation : Spécifiez les paramètres de journalisation dans un fichier de configuration et chargez-le dans votre application à l'aide de la fonction . logging.config.fileConfig()
Enregistrer les messages du journal

Une fois le module de journalisation configuré, les messages du journal peuvent être enregistrés en appelant la méthode

 : logger.log()

import logging

logger = logging.getLogger(__name__)

# 记录 DEBUG 级别的消息
logger.debug("这是调试信息。")

# 记录 INFO 级别的消息
logger.info("正在处理请求。")

# 记录 WARNING 级别的消息
logger.warning("发生了潜在问题。")
Copier après la connexion

Utilisation avancée

Le module de journalisation offre de nombreuses fonctionnalités avancées, notamment :

  • Propagation des journaux : Les messages de journal peuvent être propagés des journaux enfants aux journaux parents.
  • Filtre de journal : Utilisez la classe pour filtrer les messages du journal. logging.Filter()
  • Journalisation multithread : le module de journalisation prend en charge la journalisation threadée sûre dans les applications multithread. Dictionnaire de journalisation :
  • Utilisez la classe
  • pour accéder aux détails d'un message de journal. logging.LogRecord()Meilleures pratiques
Pour utiliser efficacement le module de journalisation, suivez ces bonnes pratiques :

Choisissez le niveau de journalisation approprié :
    Enregistrez uniquement les informations nécessaires et évitez une journalisation excessive.
  • Utilisez des messages de journal descriptifs :
  • Fournissez suffisamment de contexte pour que les messages de journal puissent être facilement compris.
  • Examinez régulièrement les journaux :
  • Vérifiez régulièrement les journaux pour détecter les erreurs ou les problèmes.
  • Activer la journalisation du débogage :
  • Activer temporairement une journalisation plus détaillée lors du débogage des problèmes.
  • Suivez les conventions de journalisation :
  • Gardez les messages de journal cohérents, en utilisant des formats et des conventions de dénomination standard.
  • Résumé

Le module de journalisation Python

est un outil puissant qui aide les développeurs

surveilleret déboguer les applications. En comprenant ses concepts de base, son utilisation avancée et ses meilleures pratiques, les développeurs peuvent utiliser efficacement le module de journalisation pour améliorer la fiabilité et la maintenabilité de leurs 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

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

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)

Compétences en développement PHP : Comment implémenter la fonction de journalisation des accès au site Web Compétences en développement PHP : Comment implémenter la fonction de journalisation des accès au site Web Sep 22, 2023 am 08:31 AM

Compétences en développement PHP : Comment implémenter la fonction de journalisation des accès au site Web

Comment utiliser Vue pour implémenter l'analyse et la journalisation des communications côté serveur Comment utiliser Vue pour implémenter l'analyse et la journalisation des communications côté serveur Aug 10, 2023 pm 02:58 PM

Comment utiliser Vue pour implémenter l'analyse et la journalisation des communications côté serveur

Conseils de développement Laravel : Comment gérer les exceptions et les enregistrements de journaux Conseils de développement Laravel : Comment gérer les exceptions et les enregistrements de journaux Nov 23, 2023 am 10:08 AM

Conseils de développement Laravel : Comment gérer les exceptions et les enregistrements de journaux

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

Comment effectuer la gestion des erreurs et la journalisation dans la conception de classes C++ ?

Compétences en matière de journalisation et de débogage ThinkPHP6 : localisez rapidement les problèmes Compétences en matière de journalisation et de débogage ThinkPHP6 : localisez rapidement les problèmes Aug 13, 2023 pm 11:05 PM

Compétences en matière de journalisation et de débogage ThinkPHP6 : localisez rapidement les problèmes

Comment implémenter la journalisation des requêtes et l'analyse des services Web via le serveur proxy Nginx ? Comment implémenter la journalisation des requêtes et l'analyse des services Web via le serveur proxy Nginx ? Sep 06, 2023 pm 12:00 PM

Comment implémenter la journalisation des requêtes et l'analyse des services Web via le serveur proxy Nginx ?

Conseil de développement : Comment se connecter aux applications ThinkPHP Conseil de développement : Comment se connecter aux applications ThinkPHP Nov 22, 2023 am 11:24 AM

Conseil de développement : Comment se connecter aux applications ThinkPHP

Comment utiliser l'interface PHP pour développer la fonction de journalisation WeChat d'entreprise ? Comment utiliser l'interface PHP pour développer la fonction de journalisation WeChat d'entreprise ? Sep 11, 2023 am 09:33 AM

Comment utiliser l'interface PHP pour développer la fonction de journalisation WeChat d'entreprise ?

See all articles