Bagaimana Menggunakan Django Logging?

Setiap programmer menghadapi error saat menulis kode untuk mengembangkan aplikasi apa pun. Debug digunakan oleh pembuat kode untuk menyelesaikan error aplikasi. Fitur logging-nya membuat proses debugging lebih mudah dengan menyimpan output pesan error, peringatan, dan informasi ke dalam file. Pesan-pesan ini membantu pembuat kode untuk melacak peristiwa, memahami alasan keluaran yang tidak diinginkan, dan memodifikasi kode dengan benar untuk membuat aplikasi bebas error. Python memiliki modul logging bawaan untuk melakukan tugas terkait logging dengan lebih efisien. Django adalah framework kerja python populer yang menggunakan modul logging bawaan python untuk tujuan debugging. Bagaimana modul python logging dapat digunakan dalam aplikasi Django untuk keperluan debugging akan dijelaskan dalam tutorial ini.

Bagian yang berbeda dari Django Logging

Django logging berisi empat jenis konfigurasi yang dijelaskan di bawah ini.

1. Django Logger
Logger mencatat kejadian saat aplikasi dijalankan, dan logging dipanggil. Entri log disimpan dalam file dengan mengkategorikannya di tingkat log yang berbeda. Setiap tingkat log menunjukkan tingkat keparahan peristiwa. Tujuan dari level log ini disebutkan di bawah ini:

  1. DEBUG
    Ini menyediakan informasi sistem tingkat rendah untuk debugging.
  1. INFO
    Ini memberikan informasi umum.
  1. ERROR
    Ini memberikan informasi tentang masalah utama aplikasi.
  1. PERINGATAN
    Ini memberikan informasi tentang masalah kecil dari aplikasi.
  1. CRITICAL
    Ini memberikan informasi tentang masalah kritis aplikasi.

2. Django Handler
Tugas utama dari handler adalah mengirimkan informasi log yang disimpan dalam file log. Modul logging berisi banyak jenis penangan dan beberapa dari mereka dapat didefinisikan untuk logger yang sama.

3. Django Formatter
Digunakan untuk memformat data log. Data handler tidak dapat dikirim langsung ke file log dan data handler memerlukan konversi dengan menggunakan formatter sebelum dikirim. Pemformat mengubah catatan log menjadi string. Format data tergantung pada logika bisnis handler.

4. Filter Django
Digunakan untuk menyaring pesan log. Tidak perlu menyimpan semua pesan log ke dalam file log. Penangan yang berbeda dapat digunakan untuk pesan yang berbeda dan pesan log yang diperlukan dapat difilter menggunakan filter yang diperlukan.

Prasyarat

Sebelum mempraktikkan skrip tutorial ini, Anda harus menyelesaikan tugas-tugas berikut:

  1. Instal Django versi 3+ di Ubuntu 20+ (lebih disukai)
  2. Buat proyek Django
  3. Jalankan server Django untuk memeriksa server bekerja dengan benar atau tidak.

Siapkan aplikasi Django

  1. Jalankan perintah berikut untuk membuat aplikasi Django bernama logapp.
$ python3 manage.py startapp logapp
  1. Jalankan perintah berikut untuk membuat user mengakses database Django. Jika Anda telah membuat user sebelumnya maka tidak perlu menjalankan perintah.
$ python3 manage.py createsuperuser
  1. Tambahkan nama aplikasi di INSTALLED_APP bagian dari py file.
INSTALLED_APPS = [
    …..
    'logapp'
]

Setel Informasi Pencatatan di settings.py

Buka settings.pyfile dari folder proyek Django dan tambahkan konten berikut untuk mendefinisikan informasi logging. Sifat-sifat darihandlers dan loggersdiatur di sini. Menurut nilai properti logging,DEBUG informasi logging level akan disimpan dalam file log bernama djangoapp.log ketika aplikasi Django akan dieksekusi.

# Django Logging Information
LOGGING = {
    # Define the logging version
    'version': 1,
    # Enable the existing loggers
    'disable_existing_loggers': False,

    # Define the handlers
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': 'djangoapp.log',
        },

        'console': {
            'class': 'logging.StreamHandler',
        },
    },

   # Define the loggers
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,

        },
    },
}

Buka djangoapp.log file untuk memeriksa entri log disimpan dalam file atau tidak.

Setel Informasi Pencatatan di views.py

Informasi logging dapat ditentukan menggunakan file tampilan juga. Bukaviews.py file dari logappfolder dan ganti konten dengan skrip berikut. Dalam skrip ini,formatters, handlers, dan loggers bagian dari Django logging didefinisikan dalam config.dictConfig() metode. DEBUG informasi logging level akan disimpan dalam file log bernama djangoapp.log dan akan dicetak di konsol saat aplikasi Django akan dieksekusi. index() fungsi digunakan untuk mengirim teks judul sederhana ke browser dan display_log() fungsi didefinisikan untuk mengirim teks sederhana di terminal dan teks judul ke browser.

views.py

# Import the logging module
import logging
# Import HttpResponse to send data to the browser
from django.http import HttpResponse

# Define the logging configurations
logging.config.dictConfig({
   # Define the logging version
    'version': 1,
    # Enable the existing loggers
    'disable_existing_loggers': False,
   
   # Define the formatters
    'formatters': {
        'console': {
            'format': '%(message)s'
        },
        'file': {
            'format': '%(message)s'
        },
   
   # Define the handlers
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
            'formatter': 'console'
        },
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'formatter': 'file',
            'filename': 'djangoapp.log'
        }
    },
   
   # Define the loggers
    'loggers': {
        'django': {
            'level': 'DEBUG',
            'handlers': ['file', 'console'],

        }
    }
}

})

# Create the loggers object
logger = logging.getLogger('__name__')

# Define the  function for the index page
def index(request):
    return HttpResponse("<h1 >This is a Django Application</h1>")

# Define the  function for the log page
def display_log(request):
    # Send the Test!! log message to standard out
    logger.error("Testing Django log...")
    return HttpResponse("<h1 >Django Logging Message</h1>")

Ubah konten urls.pyfile dengan skrip berikut. Dalam skrip, jalur kosong (“) didefinisikan untuk memanggilindex() fungsi pandangan dan ‘log/‘ path digunakan untuk memangg
il display_log() fungsi pandangan.

urls.py

from django.urls import path
from logapp import views

urlpatterns = [
    path('', views.index),
    path('log/', views.display_log)
]

Jalankan URL berikut untuk menampilkan halaman indeks.

http://localhost:8000

Jalankan URL berikut untuk memanggil metode display_log() yang akan menampilkan pesan teks di browser dan pesan teks di terminal. Entri log akan ditambahkan didjangoapp.log file.

Kesimpulan

Dua cara menggunakan python logging dalam aplikasi Django untuk menjaga informasi logging level DEBUG ditampilkan dalam tutorial ini. Konsep dasar mengenai Django logging diharapkan dapat dipahami oleh pembaca setelah membaca tutorial ini.

Related Posts