Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menangkap Semua Pertanyaan SQL dalam Django untuk Penyahpepijatan dan Analisis Prestasi?

Bagaimana untuk Menangkap Semua Pertanyaan SQL dalam Django untuk Penyahpepijatan dan Analisis Prestasi?

Patricia Arquette
Patricia Arquetteasal
2024-10-17 17:28:30424semak imbas

How to Capture All SQL Queries in Django for Debugging and Performance Analysis?

Melog Semua Pertanyaan SQL dalam Django

Dalam Django, menangkap pertanyaan SQL yang dilaksanakan oleh aplikasi anda boleh memberikan pandangan yang tidak ternilai untuk penyahpepijatan, analisis prestasi , dan pemantauan keselamatan. Begini cara anda boleh mencapainya:

Untuk log semua pertanyaan SQL, termasuk pertanyaan daripada tapak pentadbir, ubah suai konfigurasi LOGING dalam fail settings.py anda. Tambahkan coretan berikut untuk digabungkan dengan medan PEMBLOG sedia ada:

LOGGING = {
    'version': 1,
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
        }
    },
    'loggers': {
        'django.db.backends': {
            'level': 'DEBUG',
            'handlers': ['console'],
        }
    }
}

Konfigurasi ini akan menghalakan semua pertanyaan SQL ke konsol apabila bendera DEBUG ditetapkan kepada Benar dalam tetapan.py anda. Jika anda lebih suka untuk log pertanyaan ke fail, anda boleh menggantikan pengendali 'konsol' dengan 'FileHandler' dan nyatakan laluan ke fail log.

Sebagai contoh, untuk log pertanyaan ke fail bernama all-sql.log, gunakan pengendali berikut:

'handlers': {
    'all_sql_file': {
        'level': 'DEBUG',
        'filters': ['require_debug_true'],
        'class': 'logging.FileHandler',
        'filename': 'all-sql.log',
    }
}

Pastikan anda memulakan semula pelayan Django anda selepas membuat perubahan ini untuk memastikan konfigurasi pengelogan baharu berkuat kuasa.

Atas ialah kandungan terperinci Bagaimana untuk Menangkap Semua Pertanyaan SQL dalam Django untuk Penyahpepijatan dan Analisis Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn