Secrets du module Python Logging : créez un système de journalisation transparent

PHPz
Libérer: 2024-02-21 09:45:12
avant
766 Les gens l'ont consulté

Le module Logging de

Python Logging 模块秘技:打造无缝的日志记录系统

python fournit un mécanisme puissant pour capturer et gérer les messages log dans votre application. Il s'agit d'un outil hautement flexible et configurable qui peut être personnalisé selon les besoins pour répondre à divers besoins de journalisation. Cet article plongera dans les secrets du module de journalisation Python pour vous aider à créer un système de journalisation transparent qui simplifie le dépannage et améliore la fiabilité de votre application.

1. Granularité du niveau de journalisation

Le module de journalisation propose cinq niveaux de journalisation intégrés : DEBUG, INFO, AVERTISSEMENT, ERREUR et CRITIQUE. En utilisant ces niveaux, vous pouvez granulariser vos messages de journal pour fournir différents niveaux de détails si nécessaire. Par exemple, le niveau DEBUG peut être utilisé pour des informations de débogage détaillées, tandis que le niveau INFO peut être utilisé pour enregistrer des événements ou des états généraux.

Utilisez l'exemple de code suivant pour définir le niveau de journalisation :

import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
Copier après la connexion

2. Formateur de journaux personnalisé

Par défaut, le module Logging utilise un simple formateur de texte. Cependant, vous pouvez contrôler l'apparence de vos messages de journal en créant votre propre formateur personnalisé. Les formateurs personnalisés vous permettent d'ajouter des informations supplémentaires telles que des horodatages, des identifiants thread ou des champs personnalisés.

L'exemple suivant montre comment créer un formateur de journaux personnalisé :

import logging

class MyFORMatter(logging.Formatter):
def format(self, record):
return f"{record.asctime} {record.levelname} {record.name} {record.message}"

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler())
logger.addHandler(logging.FileHandler("my.log"))
logger.addFilter(MyFilter())
Copier après la connexion

3. Traitement flexible des journaux

Le module Python Logging vous permet d'acheminer les messages de journal vers différentes destinations, appelées processeurs. Ces processeurs peuvent écrire des messages dans des fichiers, les envoyer aux sockets réseau ou les transmettre à d'autres mécanismes de traitement. La gestion flexible des journaux vous permet de personnaliser la sortie de journalisation selon vos besoins.

Les exemples de code suivants montrent comment utiliser différents processeurs :

import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

# 将日志消息写入文件
file_handler = logging.FileHandler("my.log")
logger.addHandler(file_handler)

# 将日志消息发送到网络套接字
Socket_handler = logging.SocketHandler("localhost", 5000)
logger.addHandler(socket_handler)
Copier après la connexion

4. Filtres avancés

Le module Logging fournit des filtres pour filtrer les messages de journal avant de les acheminer vers les processeurs. Les filtres vous permettent de filtrer les messages en fonction du niveau de journalisation, de la correspondance des expressions régulières ou d'autres critères. En utilisant des filtres, vous pouvez contrôler quels messages sont enregistrés et transmis au processeur.

L'exemple de code suivant montre comment utiliser les filtres :

import logging

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

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler())
logger.addFilter(MyFilter())
Copier après la connexion

5. Configuration du journal

Le module Python Logging peut être configuré via des fichiers de configuration. Cela vous permet de gérer de manière centralisée les paramètres de journalisation afin qu'ils puissent être conservés et modifiés. Les fichiers de configuration utilisent le format INI et vous permettent de spécifier des niveaux de journalisation, des gestionnaires et des filtres.

L'exemple suivant montre un simple fichier de configuration de journal :

[loggers]
keys=root

[handlers]
keys=consoleHandler,fileHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=INFO
handlers=consoleHandler,fileHandler

[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=simpleFormatter
args=(sys.stderr,)

[handler_fileHandler]
class=FileHandler
level=INFO
formatter=simpleFormatter
args=("my.log",)

[formatter_simpleFormatter]
format=%(asctime)s %(levelname)s %(message)s
Copier après la connexion

Conclusion

Le module Python Logging est un outil puissant qui vous aide à créer des systèmes de journalisation puissants et évolutifs pour vos applications. En tirant parti de ses niveaux de journalisation granulaires, de ses formateurs de journaux personnalisés, de son traitement flexible des journaux, de ses filtres avancés et de ses capacités de configuration des journaux, vous pouvez adapter la journalisation à vos besoins pour simplifier le dépannage, améliorer la fiabilité des applications et contrôler des informations précieuses sur l'état 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!

Étiquettes associées:
source:lsjlt.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!