1. Protokollebene: Präzise Kontrolle der Protokollinformationen
DasProtokollierungsmodul definiert fünf Standard-Protokollierungsebenen: DEBUG, INFO, WARNUNG, FEHLER und KRITISCH. Diese Ebenen bestimmen die Wichtigkeit und den Schweregrad der zu protokollierenden Nachrichten. Standardmäßig werden bei der Protokollierung nur Meldungen der Stufe WARNING und höher protokolliert. Sie können das Protokollierungsverhalten feinabstimmen, indem Sie die Protokollierungsebene festlegen. Zum Beispiel:
import logging
# 设置 root 日志器的级别为 INFO
logging.basicConfig(level=logging.INFO)
Das Protokollierungsmodul bietet einen leistungsstarken Protokollformatierungsmechanismus, mit dem Sie das Erscheinungsbild von Protokollmeldungen anpassen können. Format
StringGibt die in der Protokollnachricht enthaltenen Informationen an, z. B. Zeitstempel, Protokollebene, Nachrichtentext und Stack-Trace. Das Standardformat ist:
"[%(asctime)s] %(levelname)s %(module)s.%(funcName)s: %(message)s"
# 设置自定义日志格式 logging.basicConfig(fORMat="%(asctime)s %(levelname)-8s %(message)s")
Ein Handler ist dafür verantwortlich, Protokollnachrichten an ein bestimmtes Ziel zu senden, z. B. eine Datei, eine Konsole oder einen Remote-
Server. Das Protokollierungsmodul bietet mehrere integrierte Handler wie StreamHandler und FileHandler. Das Erstellen benutzerdefinierter Prozessoren ist ebenfalls sehr einfach. Sie müssen eine Klasse erstellen und die Handle-Methode überschreiben, die die Protokollnachricht in das Ziel schreibt. Um beispielsweise Protokolle in eine benutzerdefinierte Datei zu schreiben:
class MyFileHandler(logging.FileHandler): def __init__(self, filename): super().__init__(filename) # 将自定义处理器添加到 root 日志器 logging.getLogger().addHandler(MyFileHandler("my_log.txt"))
Mit Filtern können Sie Protokollnachrichten nach bestimmten Kriterien filtern. Sie können Filter basierend auf Protokollebene, Nachrichtentext oder anderen Kriterien erstellen. Filter können an Prozessoren angehängt werden, um nur Nachrichten durchzulassen, die die Kriterien erfüllen.
Zum Beispiel ein Filter, der Nachrichten mit der Stufe WARNUNG:
ignoriertimport logging # 创建筛选器忽略 WARNING 级别的消息 filter = logging.Filter() filter.filter = lambda record: record.levelno < logging.WARNING # 将筛选器添加到 root 日志器的处理器 logging.getLogger().handlers[0].addFilter(filter)
logging.LoggerContextManager Der Kontextmanager bietet eine übersichtliche Möglichkeit, Nachrichten in Blöcken zu protokollieren. Dies ist nützlich, um die Protokollebene vorübergehend zu ändern oder die Protokollierung zu deaktivieren.
with logging.LoggerContextManager(): # 临时将日志级别设置为 DEBUG logging.getLogger().setLevel(logging.DEBUG) # 在块内记录 DEBUG 级的消息 logging.debug("调试信息")
Das
Python-Protokollierungsmodul ist ein leistungsstarkes Tool, mit dem sich Anwendungsaktivitäten effizient protokollieren lassen. Durch das Verständnis von Protokollebenen, Protokollformaten, Protokollprozessoren, Protokollfiltern und erweiterten Techniken können Sie die Möglichkeiten der Protokollierung voll ausschöpfen und flexible und sinnvolle Protokollierungslösungen für Ihre Anwendungen erstellen.
Das obige ist der detaillierte Inhalt vonPython-Protokollierungsmodul entschlüsselt: enthüllt seine unbekannte Seite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!