Verschiedene Teile von Django Logging
Die Django-Protokollierung enthält vier Arten von Konfigurationen, die im Folgenden erläutert werden.
1. Django-Logger
Der Logger zeichnet die Ereignisse beim Ausführen der Anwendung auf und die Protokollierung wird aufgerufen. Die Log-Einträge werden in einer Datei gespeichert, indem sie in verschiedene Log-Levels kategorisiert werden. Jede Protokollebene gibt den Schweregrad der Ereignisse an. Die Zwecke dieser Protokollebenen werden im Folgenden erwähnt:
- DEBUGGEN
Es bietet Systeminformationen auf niedriger Ebene für das Debugging.
- DIE INFO
Es bietet allgemeine Informationen.
- ERROR
Es informiert über das Hauptproblem der Anwendung.
- WARNUNG
Es informiert über das kleinere Problem der Anwendung.
- KRITISCH
Es informiert über das kritische Problem der Anwendung.
2. Django-Behandler
Die Hauptaufgabe des Handlers besteht darin, die Log-Informationen zu übermitteln, die in der Log-Datei gespeichert sind. Das Logging-Modul enthält viele Arten von Handlern, von denen mehrere für denselben Logger definiert werden können.
3. Django-Formatierer
Es wird verwendet, um die Protokolldaten zu formatieren. Die Daten des Handlers können nicht direkt an die Protokolldatei gesendet werden und die Handlerdaten müssen vor dem Senden mit dem Formatierer konvertiert werden. Der Formatierer wandelt die Protokolldatensätze in den String um. Das Format der Daten hängt von der Geschäftslogik des Handlers ab.
4. Django-Filter
Es wird verwendet, um die Protokollnachrichten zu filtern. Es ist nicht erforderlich, alle Log-Meldungen in der Log-Datei zu speichern. Für unterschiedliche Nachrichten können unterschiedliche Handler verwendet werden und die erforderlichen Protokollnachrichten können mit den erforderlichen Filtern gefiltert werden.
Voraussetzungen
Bevor Sie das Skript dieses Tutorials üben, müssen Sie die folgenden Aufgaben ausführen:
- Installieren Sie die Django-Version 3+ auf Ubuntu 20+ (vorzugsweise)
- Erstellen Sie ein Django-Projekt
- Führen Sie den Django-Server aus, um zu überprüfen, ob der Server ordnungsgemäß funktioniert oder nicht.
Richten Sie eine Django-App ein
- Führen Sie den folgenden Befehl aus, um eine Django-App namens zu erstellen logapp.
- Führen Sie den folgenden Befehl aus, um den Benutzer für den Zugriff auf die Django-Datenbank zu erstellen. Wenn Sie den Benutzer zuvor erstellt haben, müssen Sie den Befehl nicht ausführen.
- Fügen Sie den App-Namen im . hinzu INSTALLED_APP Teil von dem py Datei.
…
'logapp'
]
Legen Sie die Protokollierungsinformationen in den Einstellungen fest.py
Öffne das die Einstellungen.py Datei aus dem Django-Projektordner und fügen Sie den folgenden Inhalt hinzu, um die Protokollierungsinformationen zu definieren. Die Eigenschaften der Handler und Holzfäller sind hier eingestellt. Gemäß den Werten der Protokollierungseigenschaften, DEBUGGEN Die Protokollierungsinformationen der Ebene werden in einer Protokolldatei namens gespeichert djangoapp.Log wann die Django-App ausgeführt wird.
# Django-Logging-InformationenAUFZEICHNUNG =
# Definieren Sie die Protokollierungsversion
'Version 1,
# Aktiviere die vorhandenen Logger
'disable_existing_loggers': Falsch,
# Definiere die Handler
'Handler':
'Datei':
'level': 'DEBUG',
'Klasse': 'Protokollierung.FileHandler',
'Dateiname': 'djangoapp.Log',
,
'Konsole':
'Klasse': 'Protokollierung.StreamHandler',
,
,
# Definieren Sie die Logger
'Logger':
'Django':
'Handler': ['Datei'],
'level': 'DEBUG',
'verbreiten': Richtig,
,
,
Öffne das djangoapp.Log Datei, um zu überprüfen, ob Log-Einträge in der Datei gespeichert sind oder nicht.
Legen Sie die Protokollierungsinformationen in den Ansichten fest.py
Logging-Informationen können auch über die Ansichtsdatei definiert werden. Öffne das Ansichten.py Datei aus dem logapp Ordner und ersetzen Sie den Inhalt durch das folgende Skript. In diesem Skript, Formatierer, Handler, und Holzfäller Teile der Django-Protokollierung sind in der Konfiguration.dictConfig() Methode. DEBUGGEN Die Protokollierungsinformationen der Ebene werden in einer Protokolldatei namens gespeichert djangoapp.Log und wird in der Konsole gedruckt, wenn die Django-App ausgeführt wird. Index() Funktion wird verwendet, um einen einfachen Überschriftstext an den Browser zu senden und die display_log() Funktion ist so definiert, dass sie einen einfachen Text im Terminal und einen Überschriftstext an den Browser sendet.
Ansichten.py
# Importieren Sie das Logging-ModulProtokollierung importieren
# Importieren Sie HttpResponse, um Daten an den Browser zu senden
von django.HTTP-Import HttpResponse
# Definieren Sie die Logging-Konfigurationen
Protokollierung.Konfiguration.dictConfig(
# Definieren Sie die Protokollierungsversion
'Version 1,
# Aktiviere die vorhandenen Logger
'disable_existing_loggers': Falsch,
# Definiere die Formatierer
'Formatierer':
'Konsole':
'format': '%(Nachricht)s'
,
'Datei':
'format': '%(Nachricht)s'
,
# Definiere die Handler
'Handler':
'Konsole':
'Klasse': 'Protokollierung.StreamHandler',
'formatierer': 'konsole'
,
'Datei':
'level': 'DEBUG',
'Klasse': 'Protokollierung.FileHandler',
'formatierer': 'datei',
'Dateiname': 'djangoapp.Log'
,
# Definieren Sie die Logger
'Logger':
'Django':
'level': 'DEBUG',
'handler': ['Datei', 'Konsole'],
)
# Erstellen Sie das Logger-Objekt
Logger = Protokollierung.getLogger('__name__')
# Definieren Sie die Funktion für die Indexseite
def-Index (Anfrage):
return HttpResponse("
Dies ist eine Django-Anwendung
")# Definieren Sie die Funktion für die Log-Seite
def display_log(Anfrage):
# Senden Sie den Test!! Log-Nachricht auf Standard-Out
Logger.error("Django-Log wird getestet…")
return HttpResponse("
Django-Protokollierungsnachricht
")Ändern Sie den Inhalt der URLs.py Datei mit folgendem Skript. Im Skript ist der leere path()-Pfad definiert, um den Index() Funktion der Ansichten und der 'Log/'Pfad wird verwendet, um die display_log() Funktion der Ansichten.
URLs.py
von django.URL-Importpfadaus logapp-Importansichten
URLmuster = [
Pfad(", Ansichten.Index),
path('log/', Ansichten.display_log)
]
Führen Sie die folgende URL aus, um die Indexseite anzuzeigen.
http://localhost:8000
Führen Sie die folgende URL aus, um die Methode display_log() aufzurufen, die eine Textnachricht im Browser und eine Textnachricht im Terminal anzeigt. Log-Einträge werden im angehängt djangoapp.Log Datei.
Fazit
In diesem Tutorial werden zwei Möglichkeiten gezeigt, wie Sie die Python-Protokollierung in der Django-Anwendung verwenden können, um die Protokollierungsinformationen auf DEBUG-Ebene beizubehalten. Es wird erwartet, dass die Leser das grundlegende Konzept der Django-Protokollierung verstehen, nachdem sie dieses Tutorial gelesen haben.