Maison >développement back-end >Tutoriel Python >Module de journalisation Python décrypté : révéler son côté inconnu
1. Niveau de journal : contrôle précis des informations du journal
Le modulelogging définit cinq niveaux log standards : DEBUG, INFO, AVERTISSEMENT, ERREUR et CRITIQUE. Ces niveaux déterminent l'importance et la gravité des messages à enregistrer. Par défaut, la journalisation enregistre uniquement les messages de niveau AVERTISSEMENT et supérieur. Vous pouvez affiner le comportement de la journalisation en définissant le niveau de l'enregistreur. Par exemple :
import logging # 设置 root 日志器的级别为 INFO logging.basicConfig(level=logging.INFO)
2. Format du journal : sortie du journal personnalisée
Le module de journalisation fournit un puissant mécanisme de formatage des journaux qui vous permet de personnaliser l'apparence des messages du journal. Format StringSpécifie les informations contenues dans le message de journal, telles que l'horodatage, le niveau de journalisation, le texte du message et la trace de la pile. Le format par défaut est :
"[%(asctime)s] %(levelname)s %(module)s.%(funcName)s: %(message)s"
Vous pouvez personnaliser le format à l'aide du code suivant :
# 设置自定义日志格式 logging.basicConfig(fORMat="%(asctime)s %(levelname)-8s %(message)s")
3. Processeur de journaux : destination de sortie de journal étendue
Un gestionnaire est responsable de l'envoi des messages de journal à une destination spécifique, telle qu'un fichier, une console ou un serveur distant. Le module de journalisation fournit plusieurs gestionnaires intégrés tels que StreamHandler et FileHandler.
Créer des processeurs personnalisés est également très simple. Vous devez créer une classe et remplacer la méthode handle, qui écrit le message de journal sur la cible. Par exemple, pour écrire des journaux dans un fichier personnalisé :
class MyFileHandler(logging.FileHandler): def __init__(self, filename): super().__init__(filename) # 将自定义处理器添加到 root 日志器 logging.getLogger().addHandler(MyFileHandler("my_log.txt"))
4. Filtre de journal : filtrez les messages de journal inutiles
Les filtres vous permettent de filtrer les messages du journal en fonction de critères spécifiques. Vous pouvez créer des filtres basés sur le niveau de journalisation, le texte du message ou d'autres critères. Des filtres peuvent être attachés aux processeurs pour permettre le passage uniquement des messages répondant aux critères.
Par exemple, un filtre qui ignore les messages de niveau ATTENTION :
import logging # 创建筛选器忽略 WARNING 级别的消息 filter = logging.Filter() filter.filter = lambda record: record.levelno < logging.WARNING # 将筛选器添加到 root 日志器的处理器 logging.getLogger().handlers[0].addFilter(filter)
5. Gestion du contexte de journal : journalisation élégante
logging.LoggerContextManager Le gestionnaire de contexte fournit un moyen concis de consigner les messages en blocs. Ceci est utile pour modifier temporairement les niveaux de journalisation ou désactiver la journalisation.
with logging.LoggerContextManager(): # 临时将日志级别设置为 DEBUG logging.getLogger().setLevel(logging.DEBUG) # 在块内记录 DEBUG 级的消息 logging.debug("调试信息")
6. Compétences avancées :
Conclusion :
Le module de journalisationpython est un outil puissant qui peut être utilisé pour enregistrer efficacement les activités des applications. En comprenant les niveaux de journalisation, les formats de journaux, les processeurs de journaux, les filtres de journaux et les techniques avancées, vous pouvez tirer pleinement parti des capacités de journalisation et créer des solutions de journalisation flexibles et significatives pour vos 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!