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")
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)
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)
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
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!