Maison > développement back-end > Tutoriel Python > 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

王林
Libérer: 2024-03-08 08:00:14
avant
653 Les gens l'ont consulté

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)
Copier après la connexion

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")
Copier après la connexion

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")
Copier après la connexion

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

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

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")
Copier après la connexion

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

# 将格式器添加到处理程序
handler.setFormatter(formatter)
Copier après la connexion

FAQ

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

import logging

# 设置根日志记录器的级别为 INFO
logging.basicConfig(level=logging.INFO)
Copier après la connexion

2. Comment enregistrer les exceptions ?

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

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

# 禁用控制台处理程序
logger.removeHandler(handler)
Copier après la connexion

4. Comment utiliser le format de journal personnalisé ?

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

# 将格式器添加到处理程序
handler.setFormatter(formatter)
Copier après la connexion

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
Copier après la connexion

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!

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