Heim > Backend-Entwicklung > Python-Tutorial > Wissenspunkte zum Python-Protokollierungsmodul enthüllt: häufige Fragen an einem Ort

Wissenspunkte zum Python-Protokollierungsmodul enthüllt: häufige Fragen an einem Ort

王林
Freigeben: 2024-03-08 08:00:14
nach vorne
651 Leute haben es durchsucht

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

PythonGrundlagen des Protokollierungsmoduls

Das Grundprinzip des Protokollierungsmoduls besteht darin, einen Logger (Logger) zu erstellen und dann Nachrichten aufzuzeichnen, indem die Logger-Methode aufgerufen wird. Ein Logger verfügt über eine Ebene, die bestimmt, welche Nachrichten protokolliert werden. Das Protokollierungsmodul definiert mehrere vordefinierte Ebenen, darunter DEBUG, INFO, WARNING, ERROR und CRITICAL.

import logging

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

Ein Logger kann Nachrichten über seine Methoden protokollieren:

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

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

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

LogHandler

Ein Protokollhandler schreibt Protokollnachrichten an ein bestimmtes Ziel, z. B. eine Konsole, eine Datei oder einen NetzwerkServer. Das Protokollierungsmodul bietet mehrere vordefinierte Handler:

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

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

Handler können an Logger angehängt werden, indem zum Logger Folgendes hinzugefügt wird:

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

Protokollformatierer

Protokollformatierer (fORMatter) steuert das Erscheinungsbild von Protokollmeldungen. Das Protokollierungsmodul bietet mehrere vordefinierte Formatierer:

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

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

Formatierer können an Handler angehängt werden, indem zu Handlern hinzugefügt wird:

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

FAQ

1. Wie stelle ich die Protokollierungsstufe im Python-Skript ein?

import logging

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

2. Wie protokolliere ich Ausnahmen?

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

3. Wie deaktiviere ich einen bestimmten Handler?

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

4. Wie verwende ich ein benutzerdefiniertes Protokollformat?

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

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

5. Wie kann ich nicht erfasste Ausnahmen abfangen und in einer Datei protokollieren?

import sys
import logging

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

sys.excepthook = exception_handler
Nach dem Login kopieren

Fazit

Das

Python-Protokollierungsmodul ist ein leistungsstarkes Tool, mit dem Sie Anwendungsnachrichten einfach protokollieren und verarbeiten können. Wenn Sie die wichtigsten Punkte beherrschen, können Sie das Protokollierungsmodul effektiv zum Debuggen, zur Fehlerbehebung und zur Analyse des Verhaltens Ihrer Anwendung nutzen.

Das obige ist der detaillierte Inhalt vonWissenspunkte zum Python-Protokollierungsmodul enthüllt: häufige Fragen an einem Ort. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:lsjlt.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage