Ulike deler av Django Logging
Django logging inneholder fire typer konfigurasjoner som er forklart nedenfor.
1. Django Logger
Loggeren registrerer hendelsene når applikasjonen kjøres, og loggingen kalles. Loggoppføringene lagres i en fil ved å kategorisere dem i forskjellige loggnivåer. Hvert loggnivå indikerer alvorlighetsgraden av hendelsene. Formålet med disse loggnivåene er nevnt nedenfor:
- DEBUG
Det gir systeminformasjon på lavt nivå for feilsøking.
- INFO
Den gir generell informasjon.
- FEIL
Den gir informasjon om det største problemet med applikasjonen.
- ADVARSEL
Den gir informasjon om det mindre problemet med applikasjonen.
- KRITISK
Den gir informasjon om det kritiske problemet med applikasjonen.
2. Django Handler
Håndtererens hovedoppgave er å overføre logginformasjonen som er lagret i loggfilen. Loggmodulen inneholder mange typer håndterere, og flere av dem kan defineres for samme logger.
3. Django Formatter
Den brukes til å formatere loggdataene. Dataene til behandleren kan ikke sendes direkte til loggfilen, og behandlingsdataene krever at de konverteres ved hjelp av formateringen før sending. Formatereren konverterer loggpostene til strengen. Dataformatet avhenger av forretningslogikken til behandleren.
4. Django Filter
Den brukes til å filtrere loggmeldingene. Det er unødvendig å lagre alle loggmeldinger i loggfilen. Ulike håndtere kan brukes til forskjellige meldinger, og de nødvendige loggmeldingene kan filtreres ved hjelp av de nødvendige filtrene.
Forutsetninger
Før du trener på skriptet i denne opplæringen, må du fullføre følgende oppgaver:
- Installer Django versjon 3+ på Ubuntu 20+ (helst)
- Lag et Django-prosjekt
- Kjør Django-serveren for å kontrollere at serveren fungerer som den skal eller ikke.
Konfigurer en Django-app
- Kjør følgende kommando for å opprette en Django-app med navnet logapp.
- Kjør følgende kommando for å opprette brukeren for tilgang til Django-databasen. Hvis du har opprettet brukeren før, trenger du ikke å kjøre kommandoen.
- Legg til appnavnet i INSTALLERT_APP del av py fil.
..
'logapp'
]
Still inn logginformasjonen i innstillingene.py
Åpne innstillinger.py fil fra Django-prosjektmappen, og legg til følgende innhold for å definere logginformasjonen. Egenskapene til håndterere og loggere er satt her. I henhold til loggingsegenskapene, DEBUG informasjon om nivålogging lagres i en loggfil som heter djangoapp.Logg når Django-appen skal kjøres.
# Django loggingsinformasjonLOGGING =
# Definer loggingsversjonen
'versjon': 1,
# Aktiver eksisterende loggere
'disable_existing_loggers': Usann,
# Definer håndtererne
'handlers':
'fil':
'level': 'DEBUG',
'klasse': 'logging.FileHandler ',
'filnavn': 'djangoapp.Logg',
,
'konsoll':
'klasse': 'logging.StreamHandler ',
,
,
# Definer loggerne
'loggere':
'django':
'handlers': ['file'],
'level': 'DEBUG',
'propagere': sant,
,
,
Åpne djangoapp.Logg filen for å sjekke loggoppføringene er lagret i filen eller ikke.
Sett logginformasjonen i visninger.py
Loggingsinformasjon kan også defineres ved hjelp av visningsfilen. Åpne utsikt.py fil fra logapp mappen og erstatt innholdet med følgende skript. I dette skriptet, formatører, håndtere, og loggere deler av Django logging er definert i config.dictConfig () metode. DEBUG informasjon om nivålogging lagres i en loggfil som heter djangoapp.Logg og blir skrevet ut i konsollen når Django-appen skal kjøres. indeks () funksjonen brukes til å sende en enkel overskriftstekst til nettleseren og display_log () funksjon er definert for å sende en enkel tekst i terminalen og en overskriftstekst til nettleseren.
utsikt.py
# Importer loggmodulenimportlogging
# Importer HttpResponse for å sende data til nettleseren
fra django.http importer HttpResponse
# Definer loggkonfigurasjonene
hogst.config.dictConfig (
# Definer loggingsversjonen
'versjon': 1,
# Aktiver eksisterende loggere
'disable_existing_loggers': Usann,
# Definer formatørene
'formatere':
'konsoll':
'format': '% (melding) s'
,
'fil':
'format': '% (melding) s'
,
# Definer håndtererne
'handlers':
'konsoll':
'klasse': 'logging.StreamHandler ',
'formatter': 'konsoll'
,
'fil':
'level': 'DEBUG',
'klasse': 'logging.FileHandler ',
'formatter': 'file',
'filnavn': 'djangoapp.Logg'
,
# Definer loggerne
'loggere':
'django':
'level': 'DEBUG',
'handlers': ['file', 'console'],
)
# Opprett loggerobjektet
logger = logging.getLogger ('__ name__')
# Definer funksjonen for indeksiden
def indeks (forespørsel):
returner HttpResponse ("
Dette er en Django-applikasjon
")# Definer funksjonen for loggsiden
def display_log (forespørsel):
# Send testen!! loggmelding til standard ut
logger.feil ("Testing Django log ...")
returner HttpResponse ("
Django loggmelding
")Endre innholdet i nettadresser.py filen med følgende skript. I skriptet defineres den tomme banen (”) banen for å kalle indeks () funksjonen til utsikten og 'Logg/stien brukes til å kalle display_log () utsiktenes funksjon.
nettadresser.py
fra django.URL-adresse for importfra logapps importvisninger
urlpatterns = [
sti (", visninger.indeks),
sti ('logg', visninger.display_log)
]
Kjør følgende URL for å vise indeksiden.
http: // localhost: 8000
Kjør følgende URL for å ringe til display_log () -metoden som viser en tekstmelding i nettleseren og en tekstmelding i terminalen. Loggoppføringer legges til i djangoapp.Logg fil.
Konklusjon
To måter å bruke python-logging i Django-applikasjonen på for å beholde DEBUG-logginformasjonen vises i denne veiledningen. Det grunnleggende konseptet angående Django-logging forventes å bli forstått av leserne etter å ha lest denne opplæringen.