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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2024-03-08 08:34:02
nach vorne
472 Leute haben es durchsucht

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>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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage