Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Log Pertanyaan SQL dengan Berkesan dalam Django?

Bagaimana untuk Log Pertanyaan SQL dengan Berkesan dalam Django?

Linda Hamilton
Linda Hamiltonasal
2025-01-15 21:29:44768semak imbas

How to Effectively Log SQL Queries in Django?

Penjelasan terperinci tentang pengelogan pertanyaan Django SQL

Django ialah rangka kerja web Python yang popular untuk membina aplikasi berasaskan pangkalan data. Untuk memastikan prestasi optimum dan menyelesaikan masalah pangkalan data, selalunya perlu untuk log semua pertanyaan SQL yang dilaksanakan oleh aplikasi. Panduan ini akan membimbing anda melalui langkah demi langkah bagaimana untuk melaksanakan pengelogan ini dalam Django.

Kod pengelogan pertanyaan lokasi

Untuk log pertanyaan SQL, anda perlu mengedit fail settings.py projek Django anda. Dalam fail ini, cari kamus LOGGING dan ubah suai mengikut coretan kod berikut:

<code class="language-python">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'],
        }
    }
}</code>

Konfigurasi pengelogan bersepadu

Selepas menggabungkan coretan kod yang disediakan dengan kamus LOGGING, Django akan log semua pertanyaan SQL ke konsol secara automatik. Untuk mengubah hala pertanyaan ke fail yang berasingan (cth. all-sql.log), anda perlu menambah pengendali fail pada bahagian handlers. Berikut ialah contoh konfigurasi yang diubah suai:

<code class="language-python">LOGGING = {
    'version': 1,
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
        },
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/all-sql.log', # 请替换为您的日志文件路径
        }
    },
    'loggers': {
        'django.db.backends': {
            'level': 'DEBUG',
            'handlers': ['file'],
        }
    }
}</code>

Ingat untuk menggantikan /path/to/all-sql.log dengan laluan fail log sebenar anda. Selepas konfigurasi selesai, semua pertanyaan pangkalan data akan dilog ke fail yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Log Pertanyaan SQL dengan Berkesan dalam Django?. 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