Inhaltsverzeichnis
Einführung
string
atter erstellt werden, die die folgenden Parameter hat:
Filter werden verwendet, um Protokollnachrichten nach bestimmten Kriterien zu filtern. Das Protokollierungsmodul bietet die folgenden Filter:
Hierarchische Protokollierung
Es können auch benutzerdefinierte Protokollierungsstufen erstellt werden, um den spezifischen Anforderungen Ihrer Anwendung besser gerecht zu werden. Dies kann mit der
Das 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.
Python-Protokollierungsmodul ist ein leistungsstarkes
Heim Backend-Entwicklung Python-Tutorial Python-Protokollierungsmodul: Tutorials auf Expertenniveau, vom Anfänger bis zum Experten

Python-Protokollierungsmodul: Tutorials auf Expertenniveau, vom Anfänger bis zum Experten

Mar 08, 2024 am 08:34 AM
python 处理器 logging 日志记录 过滤器 Standardbibliothek Protokollebene Formatierer

Python logging 模块:专家级教程,从入门到精通

Einführung

Das

logging-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 Identifikator

string

.

import logging

# 创建一个名为 "my_logger" 的 logger
logger = logging.getLogger("my_logger")
Nach dem Login kopieren
logging.getLogger(name) 函数创建,其中 nameProtokollnachrichten 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
  • logger.info("程序已启动")
    logger.error("发生错误!")
    Nach dem Login kopieren
  • Log-Level*args**kwargs Das
  • logging-Modul definiert die folgenden Protokollierungsstufen (von der niedrigsten zur höchsten):

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
    Nach dem Login kopieren
Formatter

logger.level 属性。例如,要将 my_logger 的级别设置为 WARNINGFormatter 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

: Die Formatzeichenfolge der Protokollnachricht.
  • fmt: Formatierungszeichenfolge für Datum und Uhrzeit (optional).
  • # 创建一个格式化器,包含时间戳、日志级别和日志消息
    formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
    Nach dem Login kopieren
    datefmtProzessor
Prozessoren werden verwendet, um Protokollmeldungen an bestimmte Ziele auszugeben. Das Protokollierungsmodul stellt einige Handler standardmäßig bereit, wie zum Beispiel:

: Protokollmeldungen an die Konsole ausgeben.
  • logging.StreamHandler: Protokollmeldungen in eine Datei ausgeben.
  • logging.<code>logging.FileHandlerSocket
  • 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 kopieren
  • Filter

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
    # 创建一个过滤器,仅允许 INFO 和 WARNING 级别的日志消息
    filter = logging.LevelFilter(logging.INFO)
    
    # 将过滤器添加到处理器
    handler.addFilter(filter)
    Nach dem Login kopieren
    Erweiterte Nutzung

    Hierarchische Protokollierung

    Python

    Das 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 Protokollierungsmodul

    Das 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

    Das

    Python-Protokollierungsmodul ist ein leistungsstarkes

    Tool

    zum 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!

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

AMD Ryzen 9900X, 9700X, 9600X Prozessor Cinebench R23-Laufergebnisse veröffentlicht, mit einer durchschnittlichen Steigerung von 10–15 % AMD Ryzen 9900X, 9700X, 9600X Prozessor Cinebench R23-Laufergebnisse veröffentlicht, mit einer durchschnittlichen Steigerung von 10–15 % Jul 29, 2024 am 11:38 AM

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 144-Kerne, 3D-gestapelter SRAM: Fujitsu stellt den Rechenzentrumsprozessor MONAKA der nächsten Generation vor Jul 29, 2024 am 11:40 AM

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 AMD Ryzen 9 9950X übertaktet auf 6,6 GHz, CineBench R23 erreichte eine maximale Punktzahl von 55296 Punkten Jul 17, 2024 pm 09:49 PM

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 Multi-Core übersteigt 100.000, AMD EPYC 9755-Prozessor CPU-Z-Laufpunktzahl ermittelt: 14 % schneller als EPYC 9654 Jul 25, 2024 am 10:46 AM

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

So laden Sie Deepseek Xiaomi herunter So laden Sie Deepseek Xiaomi herunter Feb 19, 2025 pm 05:27 PM

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 Ryzen 7 9700X-Prozessor erscheint auf Geekbench: Single-Core-Laufpunktzahl ist 14 % höher als R7 7700X Jul 12, 2024 pm 01:59 PM

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 AMD gibt die hochschwere Sicherheitslücke „Sinkclose' bekannt, die Millionen von Ryzen- und EPYC-Prozessoren betrifft Aug 10, 2024 pm 10:31 PM

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 Google AI kündigt Gemini 1.5 Pro und Gemma 2 für Entwickler an Jul 01, 2024 am 07:22 AM

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

See all articles