Maison > développement back-end > Tutoriel Python > Module de journalisation Python : un guide avancé pour les débutants et les maîtres

Module de journalisation Python : un guide avancé pour les débutants et les maîtres

王林
Libérer: 2024-03-08 08:20:13
avant
588 Les gens l'ont consulté

Python logging 模块:初学者到大师的进阶指南

Guide du débutant

ParamètresJournauxEnregistreur

Le module

logging fournit une api pratique pour configurer les enregistreurs. Le logger sera responsable du traitement des messages du journal et de leur écriture dans un fichier ou une console :

import logging

# 创建一个名为 "my_logger" 的日志记录器
logger = logging.getLogger("my_logger")

# 设置日志级别为 DEBUG,表示要记录所有级别的日志消息
logger.setLevel(logging.DEBUG)
Copier après la connexion

Enregistrer les messages du journal

Pour enregistrer un message de journal, utilisez la méthode debug(), info(), warning(), error()critical() fournie par l'enregistreur. Chaque méthode correspond à un niveau de log différent :

logger.debug("这是 debug 消息")
logger.info("这是 info 消息")
logger.warning("这是 warning 消息")
logger.error("这是 error 消息")
logger.critical("这是 critical 消息")
Copier après la connexion

Format du journal

Par défaut, le module de journalisation utilise un format de journal simple, comprenant le niveau de journalisation, l'horodatage et le message. Vous pouvez personnaliser le format du journal pour inclure des informations supplémentaires telles que le nom de la fonction, le numéro de ligne ou l'ID du processus :

# 使用 %(asctime)s、%(levelname)s 和 %(message)s 占位符自定义日志格式
fORMatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")

# 将格式器添加到日志记录器
logger.addHandler(logging.StreamHandler())
logger.addHandler(logging.FileHandler("my_log.log"))
Copier après la connexion

Guide intermédiaire

Hiérarchie et propagateur des journaux

Le module de journalisation prend en charge les hiérarchies de journaux dans lesquelles les enregistreurs peuvent avoir des parents et des enfants. L'enregistreur parent enregistrera tous les messages dans l'enregistreur enfant :

# 创建一个名为 "parent_logger" 的父级日志记录器
parent_logger = logging.getLogger("parent_logger")

# 创建一个名为 "child_logger" 的子级日志记录器
child_logger = logging.getLogger("parent_logger.child_logger")

# 设置子级日志记录器的日志级别为 INFO,表示仅记录 info 和更高级别的消息
child_logger.setLevel(logging.INFO)

# 父级日志记录器中的消息将传播到子级日志记录器
parent_logger.info("父级日志记录器消息")
child_logger.info("子级日志记录器消息")
Copier après la connexion

Filtre de journal

Vous pouvez utiliser des filtres de journal pour contrôler quels messages de journal sont enregistrés ou propagés. Les filtres peuvent être basés sur le niveau de journalisation, le contenu du message ou d'autres propriétés :

# 创建一个过滤器,仅允许记录 error 级别及以上的消息
filter = logging.Filter()
filter.filter = lambda record: record.levelno >= logging.ERROR

# 将过滤器添加到日志记录器
logger.addFilter(filter)
Copier après la connexion

Guide avancé

Rotation des journaux

La rotation des journaux peut gérer et diviser automatiquement les fichiers journaux lorsqu'ils deviennent trop volumineux. Vous pouvez définir une taille maximale de fichier journal ou conserver un certain nombre de fichiers journaux :

# 使用 RotatingFileHandler 设置日志轮转,最大日志文件大小为 10MB
handler = logging.handlers.RotatingFileHandler("my_log.log", maxBytes=10240000)

# 将处理程序添加到日志记录器
logger.addHandler(handler)
Copier après la connexion

Poignée de journal personnalisée

Le module de journalisation vous permet de créer vos propres gestionnaires de journaux, offrant une plus grande flexibilité. Vous pouvez utiliser <code><strong class="keylink">Socket</strong>Handler 将日志消息发送到远程服务器,或使用 TimedRotatingFileHandlerSocket

Handler pour envoyer des messages de journal à un

serveur

distant, ou utiliser TimedRotatingFileHandler pour faire pivoter les fichiers journaux en fonction d'intervalles de temps plutôt que de la taille du fichier :

# 创建一个自定义日志句柄,将日志消息发送到远程服务器
handler = logging.handlers.SocketHandler("localhost", 1234)

# 将处理程序添加到日志记录器
logger.addHandler(handler)
Copier après la connexion
Conclusion Le module de journalisation python est un 🎜outil🎜 puissant et flexible qui peut améliorer considérablement les capacités de journalisation et de débogage de votre programme. En comprenant et en utilisant les techniques décrites dans ce guide, vous serez en mesure de gérer efficacement les journaux, de résoudre les problèmes et de garantir que vos programmes fonctionnent de manière stable et fiable. 🎜

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!

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