Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Log Semua Pertanyaan SQL dalam Aplikasi Django Saya?
Log semua pertanyaan SQL dalam apl Django anda
Artikel ini akan membimbing anda tentang cara untuk mengelog semua pertanyaan SQL yang dilaksanakan oleh aplikasi Django anda dengan berkesan, termasuk pertanyaan daripada tapak pentadbir. Kuncinya ialah untuk mengubah suai medan settings.py
dalam fail LOGGING
.
Langkah pelaksanaan:
logging
ke dalam kod anda. Ini membolehkan anda mengkonfigurasi dan mengendalikan fungsi pengelogan. <code class="language-python">import logging</code>
<code class="language-python">class QueryHandler(logging.Handler): def emit(self, record): # 自定义处理SQL查询的逻辑 pass</code>
settings.py
dalam fail LOGGING
. Ini akan membolehkan pengelogan pertanyaan SQL dan output terus ke pemproses yang ditentukan. <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', }, 'query_handler': { 'level': 'DEBUG', 'filters': [], 'class': 'path.to.QueryHandler', # 将path.to.QueryHandler替换为您的自定义处理器的路径 } }, 'loggers': { 'django.db.backends': { 'level': 'DEBUG', 'handlers': ['query_handler'], } } }</code>
<code class="language-python">logger = logging.getLogger('django.db.backends')</code>
<code class="language-python">logger.debug(sql_query)</code>
Dengan mengikuti langkah-langkah ini dan memasukkan coretan kod yang disediakan ke dalam fail settings.py
anda, Django akan log semua pertanyaan SQL ke fail log yang ditentukan, memberikan gambaran keseluruhan yang komprehensif tentang semua interaksi pangkalan data. Ingat untuk menggantikan 'path.to.QueryHandler'
dengan laluan sebenar ke pemproses tersuai anda. Jika anda tidak memerlukan pemproses tersuai, anda boleh mengalih keluar bahagian 'query_handler'
dan hanya menyimpan 'console'
pemproses.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Log Semua Pertanyaan SQL dalam Aplikasi Django Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!