Različni deli Django Logging
Django beleženje vsebuje štiri vrste konfiguracij, ki so razložene v nadaljevanju.
1. Django Logger
Dnevnik beleži dogodke, ko se aplikacija zažene, in se zapisuje dnevnik. Vnosi v dnevniku se shranijo v datoteko tako, da jih razvrstijo na različne ravni dnevnika. Vsaka raven dnevnika označuje resnost dogodkov. Namen teh dnevniških stopenj je naveden spodaj:
- DEBUG
Zagotavlja sistemske informacije na nizki ravni za odpravljanje napak.
- INFO
Zagotavlja splošne informacije.
- NAPAKA
Zagotavlja informacije o glavni težavi aplikacije.
- OPOZORILO
Zagotavlja informacije o manjši težavi aplikacije.
- KRITIČNO
Zagotavlja informacije o kritičnem problemu aplikacije.
2. Django Handler
Glavna naloga upravljavca je prenos podatkov dnevnika, ki so shranjeni v dnevniški datoteki. Modul beleženja vsebuje veliko vrst obdelovalcev in več jih je mogoče določiti za isti zapisovalnik.
3. Django Formatter
Uporablja se za formatiranje podatkov dnevnika. Podatkov upravljavca ni mogoče poslati neposredno v datoteko dnevnika, zato jih je treba pred pošiljanjem pretvoriti s pomočjo oblikovalnika. Oblikovalnik pretvori zapise dnevnika v niz. Oblika podatkov je odvisna od poslovne logike upravljavca.
4. Django filter
Uporablja se za filtriranje dnevniških sporočil. V dnevniško datoteko ni treba shraniti vseh dnevniških sporočil. Za različna sporočila je mogoče uporabiti različne upravljavce, potrebna sporočila dnevnika pa je mogoče filtrirati z uporabo zahtevanih filtrov.
Pogoji
Pred vadbo skripta te vadnice morate opraviti naslednje naloge:
- Namestite različico Django 3+ na Ubuntu 20+ (po možnosti)
- Ustvarite projekt Django
- Zaženite strežnik Django, da preverite, ali strežnik deluje pravilno ali ne.
Nastavite aplikacijo Django
- Zaženite naslednji ukaz, da ustvarite aplikacijo Django z imenom logapp.
- Zaženite naslednji ukaz, da ustvarite uporabnika za dostop do baze podatkov Django. Če ste uporabnika ustvarili že prej, vam ni treba zagnati ukaza.
- Dodajte ime aplikacije v INSTALLED_APP del py mapa.
..
'logapp'
]
V nastavitvah nastavite podatke dnevnika.py
Odprite nastavitve.py datoteko iz mape projekta Django in dodajte naslednjo vsebino, da določite podatke beleženja. Lastnosti vodniki in sekači so nastavljeni tukaj. Glede na vrednosti lastnosti beleženja, DEBUG Podatki dnevnika na ravni bodo shranjeni v dnevniški datoteki z imenom djangoapp.log ko bo zagnana aplikacija Django.
# Informacije o dnevniku DjangoPRIJAVA =
# Določite različico beleženja
„različica“: 1,
# Omogočite obstoječe zapisovalnike
'disable_existing_loggers': False,
# Določite vodnike
'vodniki':
'mapa':
'level': 'DEBUG',
'class': 'beleženje.FileHandler ',
'ime datoteke': 'djangoapp.dnevnik ',
,
'konzola':
'class': 'beleženje.StreamHandler ',
,
,
# Določite zapisovalnike
'zapisovalci':
'django':
'handlers': ['datoteka'],
'level': 'DEBUG',
'propagate': True,
,
,
Odprite djangoapp.log datoteka za preverjanje vnosi v dnevniku so shranjeni v datoteki ali ne.
Nastavite podatke dnevnika v pogledih.py
Podatke o dnevniku lahko določite tudi s pomočjo datoteke pogleda. Odprite pogledi.py datoteko iz logapp mapo in vsebino zamenjajte z naslednjim skriptom. V tem scenariju, oblikovalniki, vodniki, in sekači deli dnevnika Django so definirani v konfig.dictConfig () metoda. DEBUG Podatki dnevnika na ravni bodo shranjeni v dnevniški datoteki z imenom djangoapp.log in bo natisnjena v konzoli, ko se bo zagnala aplikacija Django. indeks () funkcija se uporablja za pošiljanje preprostega besedila naslova v brskalnik in display_log () je definirana tako, da v brskalnik pošlje preprosto besedilo v terminalu in besedilo naslova.
pogledi.py
# Uvozite modul za beleženjebeleženje uvoza
# Uvozite HttpResponse za pošiljanje podatkov v brskalnik
iz djanga.http uvoz HttpResponse
# Določite konfiguracije beleženja
sečnja.konfig.dictConfig (
# Določite različico beleženja
„različica“: 1,
# Omogočite obstoječe zapisovalnike
'disable_existing_loggers': False,
# Določite oblikovalnike
'oblikovalci':
'konzola':
'format': '% (sporočilo) s'
,
'mapa':
'format': '% (sporočilo) s'
,
# Določite vodnike
'vodniki':
'konzola':
'class': 'beleženje.StreamHandler ',
'formatter': 'konzola'
,
'mapa':
'level': 'DEBUG',
'class': 'beleženje.FileHandler ',
'formatter': 'datoteka',
'ime datoteke': 'djangoapp.dnevnik
,
# Določite zapisovalnike
'zapisovalci':
'django':
'level': 'DEBUG',
'handlers': ['datoteka', 'konzola'],
)
# Ustvarite objekt zapisovalnika
logger = beleženje.getLogger ('__ name__')
# Določite funkcijo za indeksno stran
indeks def (zahteva):
vrni HttpResponse ("
To je aplikacija Django
")# Določite funkcijo za dnevnik
def display_log (zahteva):
# Pošljite test!! sporočilo dnevnika na standardni izhod
sekač.napaka ("Testiranje dnevnika Django ...")
vrni HttpResponse ("
Django Logging Message
")Spremenite vsebino URL-ji.py datoteko z naslednjim skriptom. V skriptu je prazna pot (”) določena za klic indeks () funkcija pogledov in 'dnevnik /'pot se uporablja za klicanje display_log () funkcija pogledov.
URL-ji.py
iz djanga.pot za uvoz URL-jeviz pogledov uvoza logapp
urlpatterns = [
pot (", pogledi.indeks),
pot ('dnevnik /', pogledi.display_log)
]
Za prikaz naslednje strani zaženite naslednji URL.
http: // localhost: 8000
Zaženite naslednji URL, da pokličete metodo display_log (), ki bo prikazala besedilno sporočilo v brskalniku in besedilno sporočilo v terminalu. Vnosi v dnevnik bodo dodani v djangoapp.log mapa.
Zaključek
V tej vadnici sta prikazana dva načina uporabe beleženja pythona v aplikaciji Django za ohranjanje informacij o dnevniku na ravni DEBUG. Osnovni koncept v zvezi z beleženjem Django naj bi bralci razumeli po branju te vadnice.