Maison >développement back-end >Tutoriel Python >Secrets du module Python Logging : créez un système de journalisation transparent
Le module Logging de
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)
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())
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)
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())
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
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!