Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie das Protokollierungsmodul zum Protokollieren in Python 3.x

So verwenden Sie das Protokollierungsmodul zum Protokollieren in Python 3.x

WBOY
WBOYOriginal
2023-07-30 13:51:491248Durchsuche

So verwenden Sie das Protokollierungsmodul für die Protokollierung in Python 3.x

Einführung:
Im Softwareentwicklungsprozess ist die Protokollierung eine wichtige Komponente. Durch die Aufzeichnung des Programmlaufstatus und verschiedener Ereignisse können problemlos Fehlerbehebung, Leistungsanalyse und Systemüberwachung durchgeführt werden. Das Protokollierungsmodul in Python bietet leistungsstarke und flexible Protokollierungsfunktionen, mit denen Protokolle einfach erstellt und verwaltet werden können.

1. Übersicht über das Protokollierungsmodul
Logging ist ein in Python integriertes Modul, das vollständige Protokollierungsfunktionen bereitstellt. Mit dem Protokollierungsmodul können Sie verschiedene Ausgabeformate und Ausgabeziele definieren, außerdem können Sie die Protokollebene einfach steuern und Protokollinformationen nach Bedarf flexibel aufzeichnen und anzeigen.

2. Grundlegende Protokollierung
Das folgende Beispiel zeigt, wie das Protokollierungsmodul für die grundlegende Protokollierung in Python verwendet wird:

import logging

# 配置日志记录器
logging.basicConfig(level=logging.DEBUG, 
                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 创建日志记录器
logger = logging.getLogger('my_logger')

# 记录不同级别的日志
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

Im obigen Code wird das globale Protokoll zunächst über die Funktion basicConfig konfiguriert gibt die Protokollierungsstufe als DEBUG an und gibt das Protokollformat an. Erstellen Sie dann über die Funktion getLogger einen bestimmten Logger mit dem Namen 'my_logger'. Anschließend durch verschiedene Methodenebenen, wie z. B. debug, info, warning, error und critical zeichnet jeweils verschiedene Ebenen von Protokollinformationen auf. <code>basicConfig函数配置了全局的日志记录器,指定了日志记录的级别为DEBUG,并且指定了日志的格式。然后通过getLogger函数创建一个名为 'my_logger' 的具体的日志记录器。之后,通过不同级别的方法,如debuginfowarningerrorcritical,分别记录了不同级别的日志信息。

三、日志级别和输出格式控制
logging模块提供了多个级别的日志记录,包括DEBUGINFOWARNINGERRORCRITICAL五个级别,从低到高依次递增。可以通过设置日志记录器和不同的处理器的级别,来控制日志记录的详细程度。

import logging

# 配置日志记录器
logging.basicConfig(level=logging.WARNING, 
                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 创建日志记录器
logger = logging.getLogger('my_logger')

# 创建文件处理器
file_handler = logging.FileHandler('log.txt')
file_handler.setLevel(logging.DEBUG)

# 创建控制台处理器
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.ERROR)

# 设置处理器的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)

# 添加处理器到记录器
logger.addHandler(file_handler)
logger.addHandler(console_handler)

# 记录不同级别的日志
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

在上述代码中,首先通过basicConfig函数将全局的日志记录级别设置为WARNING。然后使用getLogger函数创建名为 'my_logger' 的日志记录器。接着创建了两个处理器,一个是写入文件的文件处理器,一个是输出到控制台的控制台处理器。通过设置处理器的级别,可以分别控制文件和控制台的日志输出级别。最后,通过addHandler方法将处理器添加到日志记录器中。

四、更多高级配置
logging模块还提供了更多的高级配置选项,比如日志的输出位置、文件分割、日志轮转和日志审计等。下面是一个使用RotatingFileHandler进行日志文件轮转的示例:

import logging
from logging.handlers import RotatingFileHandler

# 创建日志记录器
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)

# 创建轮转文件处理器
file_handler = RotatingFileHandler('log.txt', maxBytes=1024, backupCount=5)

# 设置处理器的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)

# 添加处理器到记录器
logger.addHandler(file_handler)

# 记录不同级别的日志
for i in range(10):
    logger.debug('This is debug message %d' % i)

在上面的代码中,通过RotatingFileHandler

3. Protokollebene und Ausgabeformatsteuerung

Das Protokollierungsmodul bietet mehrere Protokollierungsebenen, einschließlich DEBUG, INFO, WARNING fünf Stufen von FEHLER und KRITISCH, ansteigend von niedrig nach hoch. Sie können die Ausführlichkeit der Protokollierung steuern, indem Sie die Ebenen des Loggers und verschiedener Prozessoren festlegen.
rrreee

Setzen Sie im obigen Code zunächst die globale Protokollierungsstufe über die Funktion basicConfig auf WARNING. Verwenden Sie dann die Funktion getLogger, um einen Logger mit dem Namen 'my_logger' zu erstellen. Dann werden zwei Prozessoren erstellt, einer ist der Dateiprozessor, der in die Datei schreibt, und der andere ist der Konsolenprozessor, der die Ausgabe an die Konsole ausgibt. Durch Festlegen der Prozessorstufe können Sie die Protokollausgabestufen von Dateien bzw. Konsolen steuern. Fügen Sie abschließend den Handler über die Methode addHandler zum Logger hinzu. 🎜🎜4. Erweiterte Konfigurationen🎜Das Protokollierungsmodul bietet auch erweiterte Konfigurationsoptionen, wie z. B. Protokollausgabeort, Dateiaufteilung, Protokollrotation und Protokollüberwachung usw. Das Folgende ist ein Beispiel für die Verwendung von RotatingFileHandler für die Protokolldateirotation: 🎜rrreee🎜Im obigen Code wird ein Dateihandler über die Klasse RotatingFileHandler erstellt und die maximale Größe der Datei wird mit 1024 Byte angegeben , reserviert Die Anzahl der Sicherungsdateien beträgt 5. Wenn die Protokolldatei die maximale Größe erreicht, wird sie auf diese Weise automatisch in mehrere Dateien aufgeteilt, wobei die angegebene Anzahl an Sicherungsdateien erhalten bleibt. 🎜🎜Zusammenfassung: 🎜In diesem Artikel wird die grundlegende Methode zur Verwendung des Protokollierungsmoduls für die Protokollierung in Python 3.x vorgestellt. Durch die Verwendung unterschiedlicher Methodenebenen können unterschiedliche Ebenen von Protokollinformationen bequem aufgezeichnet werden. Durch die Konfiguration verschiedener Prozessoren und Formate können Sie den Ausgabeort und das Format des Protokolls flexibel steuern. Gleichzeitig bietet das Protokollierungsmodul auch erweiterte Konfigurationsoptionen wie Dateiaufteilung, Protokollrotation usw., um komplexere Protokollierungsanforderungen zu erfüllen. Wenn Sie mit der Protokollierung beginnen, können Sie die Wartbarkeit und Debugging-Effizienz des Codes verbessern, indem Sie mit grundlegenden Methoden beginnen und sich schrittweise erweiterte Konfigurationsoptionen aneignen. 🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Protokollierungsmodul zum Protokollieren in Python 3.x. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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