在Django應用程式中記錄所有SQL查詢
本文將指導您如何有效記錄Django應用程式執行的所有SQL查詢,包括來自管理網站的查詢。關鍵在於修改settings.py
檔案中的LOGGING
欄位。
實現步驟:
logging
庫到您的程式碼中。這允許您配置和處理日誌功能。 <code class="language-python">import logging</code>
<code class="language-python">class QueryHandler(logging.Handler): def emit(self, record): # 自定义处理SQL查询的逻辑 pass</code>
settings.py
檔案中的LOGGING
欄位中。這將啟用SQL查詢日誌記錄並將輸出定向到已定義的處理器。 <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>
透過按照這些步驟操作並將提供的程式碼片段合併到您的settings.py
檔案中,Django將把所有SQL查詢記錄到指定的日誌檔案中,從而提供對所有資料庫互動的全面概述。 請記得將'path.to.QueryHandler'
替換為您自訂處理器的實際路徑。 如果不需要自訂處理器,可以移除'query_handler'
部分,僅保留'console'
處理器。
以上是如何記錄 Django 應用程式中的所有 SQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!