Olika delar av Django Logging
Django-loggning innehåller fyra typer av konfigurationer som förklaras nedan.
1. Django Logger
Loggeren registrerar händelserna när applikationen körs och loggningen anropas. Loggposterna lagras i en fil genom att kategorisera dem i olika loggnivåer. Varje loggnivå anger händelsernas svårighetsgrad. Syftet med dessa loggnivåer nämns nedan:
- DEBUG
Det ger systeminformation på låg nivå för felsökning.
- INFO
Den ger allmän information.
- FEL
Den ger information om applikationens största problem.
- VARNING
Den ger information om applikationens mindre problem.
- KRITISK
Den ger information om programmets kritiska problem.
2. Django Handler
Hanterarens huvuduppgift är att överföra logginformationen som är lagrad i loggfilen. Loggningsmodulen innehåller många typer av hanterare och flera av dem kan definieras för samma logger.
3. Django Formatter
Den används för att formatera loggdata. Hanterarens data kan inte skickas direkt till loggfilen och hanterardata kräver att de konverteras med hjälp av formateraren innan de skickas. Formateraren konverterar loggposterna till strängen. Uppgifternas format beror på hanterarens affärslogik.
4. Django Filter
Den används för att filtrera loggmeddelandena. Det är onödigt att lagra alla loggmeddelanden i loggfilen. Olika hanterare kan användas för olika meddelanden och de loggmeddelanden som krävs kan filtreras med de filter som krävs.
Förutsättningar
Innan du övar på skriptet i den här självstudien måste du slutföra följande uppgifter:
- Installera Django version 3+ på Ubuntu 20+ (helst)
- Skapa ett Django-projekt
- Kör Django-servern för att kontrollera att servern fungerar korrekt eller inte.
Ställ in en Django-app
- Kör följande kommando för att skapa en Django-app med namnet logapp.
- Kör följande kommando för att skapa användaren för åtkomst till Django-databasen. Om du har skapat användaren innan behöver du inte köra kommandot.
- Lägg till appnamnet i INSTALLERAD_APP del av py fil.
..
'logapp'
]
Ställ in loggningsinformationen i inställningarna.py
Öppna inställningar.py fil från Django-projektmappen och lägg till följande innehåll för att definiera loggningsinformationen. Egenskaperna hos hanterare och avverkare är här. Enligt loggningsegenskapens värden, DEBUG nivåloggningsinformation kommer att lagras i en loggfil med namnet djangoapp.logga när Django-appen körs.
# Django loggningsinformationLOGGNING =
# Definiera loggningsversionen
'version': 1,
# Aktivera befintliga loggare
'disable_existing_loggers': Falskt,
# Definiera hanterarna
'hanterare':
'fil':
'level': 'DEBUG',
'class': 'logging.FileHandler ',
'filnamn': 'djangoapp.logga',
,
"konsol":
'class': 'logging.StreamHandler ',
,
,
# Definiera loggarna
'loggers':
'django':
'handlers': ['file'],
'level': 'DEBUG',
'propagera': sant,
,
,
Öppna djangoapp.logga fil för att kontrollera loggposter sparas i filen eller inte.
Ställ in loggningsinformationen i vyer.py
Loggningsinformation kan också definieras med hjälp av visningsfilen. Öppna utsikt.py fil från logapp mappen och ersätt innehållet med följande skript. I detta skript, formatörer, hanterare, och avverkare delar av Django loggning definieras i konfigurera.dictConfig () metod. DEBUG nivåloggningsinformation kommer att lagras i en loggfil med namnet djangoapp.logga och kommer att skrivas ut i konsolen när Django-appen körs. index() funktionen används för att skicka en enkel rubriktext till webbläsaren och display_log () funktionen definieras för att skicka en enkel text i terminalen och en rubriktext till webbläsaren.
utsikt.py
# Importera loggningsmodulenimportloggning
# Importera HttpResponse för att skicka data till webbläsaren
från django.http importera HttpResponse
# Definiera loggningskonfigurationer
skogsavverkning.konfigurera.dictConfig (
# Definiera loggningsversionen
'version': 1,
# Aktivera befintliga loggare
'disable_existing_loggers': Falskt,
# Definiera formaterarna
'formatare':
"konsol":
'format': '% (meddelande) s'
,
'fil':
'format': '% (meddelande) s'
,
# Definiera hanterarna
'hanterare':
"konsol":
'class': 'logging.StreamHandler ',
'formatter': 'console'
,
'fil':
'level': 'DEBUG',
'class': 'logging.FileHandler ',
'formatter': 'file',
'filnamn': 'djangoapp.logga'
,
# Definiera loggarna
'loggers':
'django':
'level': 'DEBUG',
'handlers': ['file', 'console'],
)
# Skapa loggningsobjektet
logger = loggning.getLogger ('__ name__')
# Definiera funktionen för indexsidan
def index (begäran):
returnera HttpResponse ("
Detta är en Django-applikation
")# Definiera funktionen för loggsidan
def display_log (begäran):
# Skicka testet!! logga meddelande till standard ut
logger.fel ("Testar Django-log ...")
returnera HttpResponse ("
Django loggningsmeddelande
")Ändra innehållet i webbadresser.py fil med följande skript. I skriptet definieras den tomma sökvägen (”) för att anropa index() vyer och vyer 'logga/'sökväg används för att ringa display_log () vyernas funktion.
webbadresser.py
från django.webbadress för webbadresserfrån logapps importvyer
urlmönster = [
sökväg (", vyer.index),
sökväg ('log /', vyer.display_log)
]
Kör följande URL för att visa indexsidan.
http: // localhost: 8000
Kör följande URL för att ringa display_log () -metoden som visar ett textmeddelande i webbläsaren och ett textmeddelande i terminalen. Loggposter läggs till i djangoapp.logga fil.
Slutsats
Två sätt att använda python-loggning i Django-applikationen för att hålla DEBUG-loggningsinformationen visas i denna handledning. Det grundläggande konceptet för Django-loggning förväntas förstås av läsarna efter att ha läst denna handledning.