Verschillende onderdelen van Django Logging
Django-logboekregistratie bevat vier soorten configuraties die hieronder worden uitgelegd:.
1. Django Logger
De logger registreert de gebeurtenissen wanneer de toepassing wordt uitgevoerd en de logboekregistratie wordt aangeroepen. De logboekvermeldingen worden in een bestand opgeslagen door ze in verschillende logboekniveaus te categoriseren. Elk logniveau geeft de ernst van de gebeurtenissen aan. De doeleinden van deze logniveaus worden hieronder vermeld:
- DEBUG
Het biedt systeeminformatie op laag niveau voor foutopsporing.
- INFO
Het geeft algemene informatie.
- FOUT
Het geeft informatie over het belangrijkste probleem van de applicatie:.
- WAARSCHUWING
Het geeft informatie over het kleine probleem van de applicatie.
- KRITIEK
Het geeft informatie over het kritieke probleem van de applicatie.
2. Django Handler
De hoofdtaak van de handler is het verzenden van de loginformatie die is opgeslagen in het logbestand. De logboekmodule bevat veel soorten handlers en er kunnen er meerdere voor dezelfde logger worden gedefinieerd.
3. Django-formatter
Het wordt gebruikt om de loggegevens te formatteren. De gegevens van de handler kunnen niet rechtstreeks naar het logbestand worden verzonden en de handlergegevens moeten worden geconverteerd met behulp van de formatter voordat ze worden verzonden. De formatter converteert de logrecords naar de string. Het formaat van de gegevens hangt af van de bedrijfslogica van de handler.
4. Django-filter
Het wordt gebruikt om de logberichten te filteren. Het is niet nodig om alle logberichten in het logbestand op te slaan. Er kunnen verschillende handlers worden gebruikt voor verschillende berichten en de vereiste logberichten kunnen worden gefilterd met behulp van de vereiste filters.
Vereisten
Voordat u het script van deze zelfstudie oefent, moet u de volgende taken uitvoeren:
- Installeer de Django versie 3+ op Ubuntu 20+ (bij voorkeur)
- Een Django-project maken
- Voer de Django-server uit om te controleren of de server goed werkt of niet.
Een Django-app instellen
- Voer de volgende opdracht uit om een Django-app met de naam te maken logapp.
- Voer de volgende opdracht uit om de gebruiker te maken voor toegang tot de Django-database:. Als u de gebruiker eerder hebt gemaakt, hoeft u de opdracht niet uit te voeren.
- Voeg de app-naam toe aan de INSTALLED_APP deel van de py het dossier.
…
'logapp'
]
Stel de loggegevens in bij instellingen.py
Open de instellingen.py bestand uit de Django-projectmap en voeg de volgende inhoud toe om de logboekinformatie te definiëren:. De eigenschappen van de afhandelaars en houthakkers zijn hier ingesteld. Volgens de logboekeigenschapswaarden, DEBUG logboekinformatie op niveau wordt opgeslagen in een logbestand met de naam djangoapp.log wanneer de Django-app wordt uitgevoerd.
# Django-loginformatieLOGGEN =
# Definieer de logversie
'versie 1,
# Schakel de bestaande loggers in
'disable_existing_loggers': False,
# Definieer de handlers
'afhandelaars':
'het dossier':
'niveau': 'DEBUG',
'class': 'loggen'.Bestandshandler',
'filename': 'djangoapp.log',
,
'console':
'class': 'loggen'.StreamHandler',
,
,
# Definieer de loggers
'loggers':
'django':
'behandelaars': ['bestand'],
'niveau': 'DEBUG',
'propageren': True,
,
,
Open de djangoapp.log bestand om te controleren of logboekvermeldingen al dan niet in het bestand zijn opgeslagen.
De loggegevens instellen in weergaven.py
Logboekinformatie kan ook worden gedefinieerd met behulp van het weergavebestand. Open de keer bekeken.py bestand van de logapp map en vervang de inhoud door het volgende script:. In dit script, formatters, handlers, en houthakkers delen van Django-logging zijn gedefinieerd in de configuratie.dictConfig() methode. DEBUG logboekinformatie op niveau wordt opgeslagen in een logbestand met de naam djangoapp.log en wordt afgedrukt in de console wanneer de Django-app wordt uitgevoerd. inhoudsopgave() functie wordt gebruikt om een eenvoudige koptekst naar de browser te sturen en de display_log() functie is gedefinieerd om een eenvoudige tekst in de terminal en een koptekst naar de browser te sturen.
keer bekeken.py
# Importeer de logboekmodulelogboekregistratie importeren
# Importeer HttpResponse om gegevens naar de browser te verzenden
van django.http import HttpResponse
# Definieer de logconfiguraties
loggen.configuratie.dictConfig(
# Definieer de logversie
'versie 1,
# Schakel de bestaande loggers in
'disable_existing_loggers': False,
# Definieer de formatters
'formatters':
'console':
'format': '%(bericht)s'
,
'het dossier':
'format': '%(bericht)s'
,
# Definieer de handlers
'afhandelaars':
'console':
'class': 'loggen'.StreamHandler',
'formatter': 'console'
,
'het dossier':
'niveau': 'DEBUG',
'class': 'loggen'.Bestandshandler',
'formatter': 'bestand',
'filename': 'djangoapp.log'
,
# Definieer de loggers
'loggers':
'django':
'niveau': 'DEBUG',
'handlers': ['bestand', 'console'],
)
# Maak het loggers-object
logger = loggen.getLogger('__naam__')
# Definieer de functie voor de indexpagina
def index(verzoek):
return HttpResponse("
Dit is een Django-toepassing
")# Definieer de functie voor de logpagina
def display_log(verzoek):
# Stuur de test!! log bericht naar standaard uit
logger.error ("Django-logboek testen… ")
return HttpResponse("
Django-logbericht
")Wijzig de inhoud van de URL's.py bestand met het volgende script. In het script wordt het lege pad(") pad gedefinieerd om de . aan te roepen inhoudsopgave() functie van de uitzichten en de 'log/' pad wordt gebruikt om de . aan te roepen display_log() functie van de weergaven.
URL's.py
van django.URL-importpadvan logapp importweergaven
urlpatronen = [
pad(", weergaven.inhoudsopgave),
pad('log/', weergaven.display_log)
]
Voer de volgende URL uit om de indexpagina weer te geven:.
http://localhost:8000
Voer de volgende URL uit om de methode display_log() aan te roepen die een tekstbericht in de browser en een tekstbericht in de terminal weergeeft. Logboekvermeldingen worden toegevoegd aan de djangoapp.log het dossier.
Conclusie
In deze zelfstudie worden twee manieren getoond om python-logboekregistratie in de Django-toepassing te gebruiken om de logboekinformatie op DEBUG-niveau te behouden. Het basisconcept met betrekking tot Django-logging zal naar verwachting worden begrepen door de lezers na het lezen van deze tutorial.