Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Protokollierungsmodul: Tutorials auf Expertenniveau, vom Anfänger bis zum Experten

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

WBOY
WBOYnach vorne
2024-03-08 08:34:02378Durchsuche

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")
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("发生错误!")
  • 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
Formatter

logger.level 属性。例如,要将 my_logger 的级别设置为 WARNINGFormatter werden verwendet, um das Erscheinungsbild von Protokollmeldungen zu steuern. Formatierer können über die Klasse logging.F

ORM

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

Stellungnahme:
Dieser Artikel ist reproduziert unter:lsjlt.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen

In Verbindung stehende Artikel

Mehr sehen