


Python-Protokollierungsmodul: Tutorials auf Expertenniveau, vom Anfänger bis zum Experten
Mar 08, 2024 am 08:34 AMEinführung
Daslogging-Modul ist die Standardbibliothek für logginglogging in python. Es bietet eine einheitliche Schnittstelle für die Protokollierung von Ereignissen in Anwendungen und ermöglicht es Entwicklern, eine detaillierte Steuerung der Protokollebenen zu definieren, Protokollmeldungen zu formatieren und Protokolle an verschiedene Ziele wie Dateien, Konsolen oder Netzwerke (Sockets) auszugeben. Erste Schritte
Erstellen Sie einen Logger Um mit der Protokollierung zu beginnen, müssen Sie zunächst ein Logger-Objekt erstellen. Der Logger kann anhand von
identifiziert werden, einem Identifikatorstring
.
import logging # 创建一个名为 "my_logger" 的 logger logger = logging.getLogger("my_logger")
logging.getLogger(name)
函数创建,其中 name
Protokollnachrichten aufzeichnen
Protokollnachrichten können mit der -Methode protokolliert werden, wobei: logger.log(level, msg, *args, **kwargs)
: Die Ebene der Protokollnachricht.
- : Protokollnachrichten.
level
- : Optionaler Parameter zum Formatieren von Protokollnachrichten.
msg
- Log-Level
*args
和**kwargs
Das logging-Modul definiert die folgenden Protokollierungsstufen (von der niedrigsten zur höchsten):
logger.info("程序已启动") logger.error("发生错误!")
DEBUG: Detaillierte Informationen für Debugging-Zwecke.
INFO: für regelmäßige Bewerbungsnachrichten.
- WARNUNG: Wird verwendet, um auf ein Problem aufmerksam zu machen.
- ERROR: für Fehler und Ausnahmen.
- KRITISCH: Für kritische Fehler oder Anwendungsabstürze.
- NOTSET: Protokollierung deaktivieren.
- Die Protokollebene kann mit
- auf eingestellt werden
logger.level = logging.WARNING
logger.level
属性。例如,要将 my_logger
的级别设置为 WARNING
Formatter werden verwendet, um das Erscheinungsbild von Protokollmeldungen zu steuern. Formatierer können über die Klasse logging.F</p>ORM<h2 id="atter-code-erstellt-werden-die-die-folgenden-Parameter-hat">atter
erstellt werden, die die folgenden Parameter hat:
logging.F<strong class="keylink">ORM</strong>atter
fmt
: Formatierungszeichenfolge für Datum und Uhrzeit (optional).-
# 创建一个格式化器,包含时间戳、日志级别和日志消息 formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
Nach dem Login kopierendatefmt
Prozessor
: Protokollmeldungen an die Konsole ausgeben.
logging.StreamHandler
: Protokollmeldungen in eine Datei ausgeben.logging.<code>logging.FileHandler
Socket Handler: Protokollnachrichten an einen Netzwerk-Socket ausgeben. -
logging.<strong class="keylink">Socket</strong>Handler
# 创建一个处理器,将日志消息输出到控制台 handler = logging.StreamHandler() # 将格式化器添加到处理器 handler.setFormatter(formatter) # 将处理器添加到 logger logger.addHandler(handler)
Nach dem Login kopierenFilter
Filter werden verwendet, um Protokollnachrichten nach bestimmten Kriterien zu filtern. Das Protokollierungsmodul bietet die folgenden Filter:
- : Basisfilter, Protokollnachrichten zulassen oder ablehnen.
-
logging.Filter
: Filtern Sie Protokollnachrichten basierend auf der Protokollebene. -
logging.LevelFilter
: Filtern Sie Protokollnachrichten basierend auf den Protokollnachrichten selbst. -
logging.MessageFilter
Erweiterte Nutzung# 创建一个过滤器,仅允许 INFO 和 WARNING 级别的日志消息 filter = logging.LevelFilter(logging.INFO) # 将过滤器添加到处理器 handler.addFilter(filter)
Nach dem Login kopierenHierarchische Protokollierung
PythonDas Protokollierungsmodul unterstützt die hierarchische Protokollierung, bei der ein Logger die Eigenschaften und das Verhalten seines übergeordneten Loggers erben kann. Dies ermöglicht den Aufbau einer Protokollierungsstruktur mit unterschiedlichen Protokollierungsgranularitätsstufen. Benutzerdefinierte Protokollierungsstufen
Es können auch benutzerdefinierte Protokollierungsstufen erstellt werden, um den spezifischen Anforderungen Ihrer Anwendung besser gerecht zu werden. Dies kann mit der
-Funktion erreicht werden.logging.addLevelName(level_name, level_value)
Erweitertes ProtokollierungsmodulDas Protokollierungsmodul kann mit benutzerdefinierten Klassen und Funktionen erweitert werden, um erweiterte oder spezifische Protokollierungsfunktionen zu implementieren. Sie können beispielsweise eigene Prozessoren oder Filter erstellen, um bestimmte Anforderungen zu erfüllen.
Fazit
DasPython-Protokollierungsmodul ist ein leistungsstarkes
Toolzum Protokollieren von Anwendungen. Es bietet Flexibilität und Anpassbarkeit und ermöglicht es Entwicklern, Protokollierungssysteme basierend auf den spezifischen Anforderungen ihrer Anwendungen zu erstellen. Indem Sie die in diesem Tutorial beschriebenen Grundprinzipien und fortgeschrittenen Techniken befolgen, können Sie das Protokollierungsmodul optimal nutzen und eine effiziente und informative Protokollierung für Ihre Anwendungen erreichen.
Das obige ist der detaillierte Inhalt vonPython-Protokollierungsmodul: Tutorials auf Expertenniveau, vom Anfänger bis zum Experten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

AMD Ryzen 9900X, 9700X, 9600X Prozessor Cinebench R23-Laufergebnisse veröffentlicht, mit einer durchschnittlichen Steigerung von 10–15 %

144-Kerne, 3D-gestapelter SRAM: Fujitsu stellt den Rechenzentrumsprozessor MONAKA der nächsten Generation vor

AMD Ryzen 9 9950X übertaktet auf 6,6 GHz, CineBench R23 erreichte eine maximale Punktzahl von 55296 Punkten

Multi-Core übersteigt 100.000, AMD EPYC 9755-Prozessor CPU-Z-Laufpunktzahl ermittelt: 14 % schneller als EPYC 9654

So laden Sie Deepseek Xiaomi herunter

AMD Ryzen 7 9700X-Prozessor erscheint auf Geekbench: Single-Core-Laufpunktzahl ist 14 % höher als R7 7700X

AMD gibt die hochschwere Sicherheitslücke „Sinkclose' bekannt, die Millionen von Ryzen- und EPYC-Prozessoren betrifft

Google AI kündigt Gemini 1.5 Pro und Gemma 2 für Entwickler an
