Python

Hoe Django-logboekregistratie te gebruiken??

Hoe Django-logboekregistratie te gebruiken??
Elke programmeur wordt geconfronteerd met fouten bij het schrijven van code voor het ontwikkelen van een applicatie. De debugging wordt door de codeur gebruikt om de fouten van de applicatie op te lossen. De logfunctie maakt het debuggen eenvoudiger door de uitvoer van fout-, waarschuwings- en informatieberichten in een bestand op te slaan. Deze berichten helpen de codeerders om de gebeurtenissen bij te houden, de reden voor de ongewenste uitvoer te begrijpen en de code correct aan te passen voor het maken van een foutloze toepassing. Python heeft een ingebouwde logboekmodule om logboekgerelateerde taken efficiënter uit te voeren. Django is een populair python-framework dat de ingebouwde logboekmodule van Python gebruikt voor foutopsporingsdoeleinden. Hoe de python-logmodule in de Django-toepassing kan worden gebruikt voor foutopsporing, wordt in deze tutorial uitgelegd.

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:

  1. DEBUG
    Het biedt systeeminformatie op laag niveau voor foutopsporing.
  1. INFO
    Het geeft algemene informatie.
  1. FOUT
    Het geeft informatie over het belangrijkste probleem van de applicatie:.
  1. WAARSCHUWING
    Het geeft informatie over het kleine probleem van de applicatie.
  1. 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:

  1. Installeer de Django versie 3+ op Ubuntu 20+ (bij voorkeur)
  2. Een Django-project maken
  3. Voer de Django-server uit om te controleren of de server goed werkt of niet.

Een Django-app instellen

  1. Voer de volgende opdracht uit om een ​​Django-app met de naam te maken logapp.
$ python3 beheren.py startapp logapp
  1. 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.
$ python3 beheren.py createsuperuser
  1. Voeg de app-naam toe aan de INSTALLED_APP deel van de py het dossier.
INSTALLED_APPS = [

'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-loginformatie
LOGGEN =
# 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 logboekmodule
logboekregistratie 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-importpad
van 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.

Beste gamepad-toewijzingsapps voor Linux
Als je graag games op Linux speelt met een gamepad in plaats van een typisch toetsenbord- en muisinvoersysteem, zijn er enkele handige apps voor jou. ...
Handige hulpmiddelen voor Linux-gamers
Als je graag games op Linux speelt, is de kans groot dat je apps en hulpprogramma's zoals Wine, Lutris en OBS Studio hebt gebruikt om de game-ervaring...
HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...