Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menangkap Semua Pertanyaan SQL dalam Django untuk Penyahpepijatan dan Analisis Prestasi?
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!