首頁 >資料庫 >mysql教程 >如何在 Django 中有效記錄 SQL 查詢?

如何在 Django 中有效記錄 SQL 查詢?

Linda Hamilton
Linda Hamilton原創
2025-01-15 21:29:44768瀏覽

How to Effectively Log SQL Queries in Django?

Django SQL查詢日誌記錄詳解

Django是一個流行的Python Web框架,用於建立資料庫驅動的應用程式。為了確保最佳效能和解決資料庫問題,通常需要記錄應用程式執行的所有SQL查詢。本指南將逐步指導您如何在Django中實現此日誌記錄。

定位查詢日誌記錄碼

要記錄SQL查詢,您需要編輯Django專案的settings.py檔案。在此文件中,找到LOGGING字典並根據以下程式碼片段修改它:

<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>

整合日誌記錄配置

將提供的程式碼片段與LOGGING字典合併後,Django會自動將所有SQL查詢記錄到控制台。要將查詢重新導向到單獨的檔案(例如all-sql.log),您需要在handlers部分新增一個檔案處理程序。以下是修改後的設定範例:

<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>

請記得將/path/to/all-sql.log替換為您實際的日誌檔案路徑。 配置完成後,所有資料庫查詢都會被記錄到指定的檔案中。

以上是如何在 Django 中有效記錄 SQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn