Django Logging'in farklı bölümleri
Django günlüğü, aşağıda açıklanan dört tür yapılandırma içerir.
1. Django Kaydedici
Günlükçü, uygulama yürütüldüğünde olayları kaydeder ve günlüğe kaydetme çağrılır. Günlük girişleri, farklı günlük seviyelerinde kategorilere ayrılarak bir dosyada saklanır. Her günlük düzeyi, olayların önem derecesini gösterir. Bu log seviyelerinin amaçları aşağıda belirtilmiştir:
- HATA AYIKLAMA
Hata ayıklama için düşük seviyeli sistem bilgileri sağlar.
- BİLGİ
Genel bilgi sağlar.
- HATA
Uygulamanın ana sorunu hakkında bilgi sağlar.
- UYARI
Uygulamanın küçük sorunu hakkında bilgi sağlar.
- KRİTİK
Uygulamanın kritik sorunu hakkında bilgi sağlar.
2. Django İşleyicisi
İşleyicinin ana görevi, günlük dosyasında depolanan günlük bilgilerini iletmektir. Günlüğe kaydetme modülü birçok türde işleyici içerir ve bunların çoğu aynı günlükçü için tanımlanabilir.
3. Django Biçimlendirici
Günlük verilerini biçimlendirmek için kullanılır. İşleyicinin verileri doğrudan günlük dosyasına gönderilemez ve işleyici verileri, gönderilmeden önce biçimlendirici kullanılarak dönüştürülmesini gerektirir. Biçimlendirici, günlük kayıtlarını dizeye dönüştürür. Verilerin formatı, işleyicinin iş mantığına bağlıdır.
4. Django Filtresi
Günlük mesajlarını filtrelemek için kullanılır. Tüm günlük mesajlarını günlük dosyasına depolamak gereksizdir. Farklı mesajlar için farklı işleyiciler kullanılabilir ve gerekli günlük mesajları gerekli filtreler kullanılarak filtrelenebilir.
Önkoşullar
Bu öğreticinin komut dosyasını uygulamadan önce aşağıdaki görevleri tamamlamanız gerekir:
- Django 3+ sürümünü Ubuntu 20+ üzerine kurun (tercihen)
- Bir Django projesi oluşturun
- Sunucunun düzgün çalışıp çalışmadığını kontrol etmek için Django sunucusunu çalıştırın.
Bir Django uygulaması kurun
- adlı bir Django uygulaması oluşturmak için aşağıdaki komutu çalıştırın günlük uygulama.
- Django veritabanına erişmek için kullanıcıyı oluşturmak için aşağıdaki komutu çalıştırın. Kullanıcıyı daha önce oluşturduysanız, komutu çalıştırmanıza gerek yoktur.
- Uygulama adını şuraya ekleyin: INSTALLED_APP bir bölümü p dosya.
…
'logapp'
]
Ayarlarda Kayıt Bilgilerini ayarlayın.p
Aç ayarlar.p Django proje klasöründen dosya ve günlük bilgilerini tanımlamak için aşağıdaki içeriği ekleyin. özellikleri işleyiciler ve kaydediciler burada ayarlandı. Loglama özelliği değerlerine göre, HATA AYIKLAMA seviye günlük kaydı bilgileri adlı bir günlük dosyasında saklanacaktır djangoapp.günlük Django uygulaması ne zaman yürütülecek.
# Django Günlük BilgileriGÜNLÜKLEME =
# Kayıt sürümünü tanımlayın
'versiyon 1,
# Mevcut kaydedicileri etkinleştirin
'disable_existing_loggers': Yanlış,
# İşleyicileri tanımlayın
'işleyiciler':
'dosya':
'seviye': 'DEBUG',
'sınıf': 'günlüğe kaydetme.Dosya İşleyicisi',
'dosya adı': 'djangoapp.kayıt',
,
'konsol':
'sınıf': 'günlüğe kaydetme.Akış İşleyicisi',
,
,
# Kaydedicileri tanımlayın
'kaydediciler':
'django':
'işleyiciler': ['dosya'],
'seviye': 'DEBUG',
'yayılmak': Doğru,
,
,
Aç djangoapp.günlük günlük girişlerinin dosyada saklanıp saklanmadığını kontrol etmek için dosya.
Görünümlerde Günlük Bilgilerini ayarlayın.p
Günlük bilgileri, görünüm dosyası kullanılarak da tanımlanabilir. Aç Görüntüleme.p dosyadan günlük uygulama klasörü ve içeriği aşağıdaki komut dosyasıyla değiştirin. Bu komut dosyasında, biçimlendiriciler, işleyiciler, ve kaydediciler Django günlüğünün bölümleri şurada tanımlanmıştır: yapılandırma.dictConfig() yöntem. HATA AYIKLAMA seviye günlük kaydı bilgileri adlı bir günlük dosyasında saklanacaktır djangoapp.günlük ve Django uygulaması yürütüldüğünde konsolda yazdırılacaktır. dizin() işlevi, tarayıcıya basit bir başlık metni göndermek için kullanılır ve display_log() işlev, terminalde basit bir metin ve tarayıcıya bir başlık metni göndermek için tanımlanmıştır.
Görüntüleme.p
# Kayıt modülünü içe aktarınithalat günlüğü
# Tarayıcıya veri göndermek için HttpResponse'yi içe aktarın
django'dan.http içe aktarma HttpResponse
# Günlük yapılandırmalarını tanımlayın
Kerestecilik.yapılandırma.dictConfig(
# Kayıt sürümünü tanımlayın
'versiyon 1,
# Mevcut kaydedicileri etkinleştirin
'disable_existing_loggers': Yanlış,
# Biçimlendiricileri tanımlayın
'biçimlendiriciler':
'konsol':
'format': '%(message)s'
,
'dosya':
'format': '%(message)s'
,
# İşleyicileri tanımlayın
'işleyiciler':
'konsol':
'sınıf': 'günlüğe kaydetme.Akış İşleyicisi',
'biçimlendirici': 'konsol'
,
'dosya':
'seviye': 'DEBUG',
'sınıf': 'günlüğe kaydetme.Dosya İşleyicisi',
'biçimlendirici': 'dosya',
'dosya adı': 'djangoapp.kayıt'
,
# Kaydedicileri tanımlayın
'kaydediciler':
'django':
'seviye': 'DEBUG',
'işleyiciler': ['dosya', 'konsol'],
)
# Kaydediciler nesnesini oluşturun
kaydedici = günlüğe kaydetme.getLogger('__name__')
# Dizin sayfası için işlevi tanımlayın
def indeksi(istek):
dönüş HttpResponse("
Bu bir Django Uygulamasıdır
")# Günlük sayfası için işlevi tanımlayın
def display_log(istek):
# Testi Gönder!! standart çıkışa giriş mesajı
ağaç kesicisi.error("Django günlüğü test ediliyor... ")
dönüş HttpResponse("
Django Günlük Mesajı
")İçeriğini değiştirin url'ler.p aşağıdaki komut dosyasıyla dosya. Komut dosyasında, boş path(”) yolu, aşağıdakileri çağırmak için tanımlanmıştır dizin() görünümlerin işlevi ve 'günlük/' yolu çağırmak için kullanılır display_log() görünümlerin işlevi.
url'ler.p
django'dan.url'leri içe aktarma yolulogapp içe aktarma görünümlerinden
url kalıpları = [
yol(", görünümler.indeks),
path('log/', görünümler.display_log)
]
Dizin sayfasını görüntülemek için aşağıdaki URL'yi çalıştırın.
http://localhost:8000
Tarayıcıda bir metin mesajı ve terminalde bir metin mesajı görüntüleyecek olan display_log() yöntemini çağırmak için aşağıdaki URL'yi çalıştırın. Günlük girişleri eklenecek djangoapp.günlük dosya.
Sonuç
DEBUG düzeyinde günlük bilgilerini tutmak için Django uygulamasında python günlüğünü kullanmanın iki yolu bu öğreticide gösterilmektedir. Django günlüğü ile ilgili temel kavramın bu öğreticiyi okuduktan sonra okuyucular tarafından anlaşılması beklenmektedir.