Maison  >  Article  >  développement back-end  >  Points de connaissance du module de journalisation Python révélés : questions courantes réunies au même endroit

Points de connaissance du module de journalisation Python révélés : questions courantes réunies au même endroit

王林
王林avant
2024-03-08 08:00:14630parcourir

Python logging 模块知识点大揭秘:常见问题一网打尽

python bases du module de journalisation

Le principe de base du module de journalisation est de créer un logger (logger) puis d'enregistrer les messages en appelant la méthode logger. Un enregistreur a un niveau qui détermine quels messages seront enregistrés. Le module de journalisation définit plusieurs niveaux prédéfinis, notamment DEBUG, INFO, Warning, ERROR et CRITICAL.

import logging

# 创建一个名为 "my_logger" 的记录器,并设置其级别为 INFO
logger = logging.getLogger("my_logger")
logger.setLevel(logging.INFO)

Un enregistreur peut enregistrer des messages via ses méthodes :

# 记录一条 INFO 级别的消息
logger.info("This is an INFO message")

# 记录一条 WARNING 级别的消息
logger.warning("This is a WARNING message")

# 记录一条 ERROR 级别的消息
logger.error("This is an ERROR message")

LogGestionnaire

Un gestionnaire de journaux écrit les messages de journal vers une destination spécifique, telle qu'une console, un fichier ou un réseauserveur. Le module de journalisation fournit plusieurs gestionnaires prédéfinis :

# 创建一个控制台处理程序
handler = logging.StreamHandler()

# 创建一个文件处理程序,将日志写入文件 "my_log.txt"
handler = logging.FileHandler("my_log.txt")

Les gestionnaires peuvent être attachés aux enregistreurs en ajoutant au logger :

# 将处理程序添加到记录器
logger.addHandler(handler)

Formateur de journal

Le formateur de journaux (fORMatter) contrôle l'apparence des messages de journal. Le module de journalisation fournit plusieurs formateurs prédéfinis :

# 创建一个基本格式器
formatter = logging.BasicFormatter()

# 使用自定义格式字符串创建自定义格式器
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")

Les formateurs peuvent être attachés aux gestionnaires en ajoutant aux gestionnaires :

# 将格式器添加到处理程序
handler.setFormatter(formatter)

FAQ

1. Comment définir le niveau de journalisation dans le script Python ?

import logging

# 设置根日志记录器的级别为 INFO
logging.basicConfig(level=logging.INFO)

2. Comment enregistrer les exceptions ?

try:
# 尝试执行一些代码
except Exception as e:
# 记录异常
logger.error(e, exc_info=True)

3. Comment désactiver un gestionnaire spécifique ?

# 禁用控制台处理程序
logger.removeHandler(handler)

4. Comment utiliser le format de journal personnalisé ?

# 使用自定义格式字符串创建自定义格式器
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")

# 将格式器添加到处理程序
handler.setFormatter(formatter)

5. Comment détecter les exceptions non détectées et les enregistrer dans un fichier ?

import sys
import logging

def exception_handler(type, value, traceback):
# 记录未捕获的异常
logger.error(value, exc_info=(type, value, traceback))

sys.excepthook = exception_handler

Conclusion

Le module de journalisation

Python est un outil puissant qui vous aide à enregistrer et traiter facilement les messages d'application. En maîtrisant ses points clés, vous pouvez utiliser efficacement le module de journalisation pour déboguer, dépanner et analyser le comportement de votre application.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer