首頁 >後端開發 >Python教學 >如何在 Django 中記錄所有 SQL 查詢?

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

Patricia Arquette
Patricia Arquette原創
2024-10-17 17:27:03492瀏覽

How Can I Log All SQL Queries in Django?

在Django 記錄SQL 查詢

這個問題尋求一種方法來記錄Django 應用程式執行的所有管理站點。任務是建立一個中央日誌檔案(例如 all-sql.log)來捕獲這些 SQL 語句。

設定LOGGING:

要實現此目的,請合併以下程式碼片段在您的settings.py 中包含LOGGING 欄位:

<code class="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>

說明:

  • 設定'level': 'DEBUG' 以擷取所有內容SQL 查詢,無論其嚴重性為何。
  • 使用 'handlers': ['console'] 將 SQL 查詢重新導向到控制台輸出。
  • 設定 'loggers': {'django.db. backends': {'level': 'DEBUG'}} 記錄所有透過 Django ORM 執行的 SQL 查詢。

注意:

此解決方案源自@acardenas89 的答案。它確保當應用程式處於偵錯模式時,所有 Django 執行的 SQL 查詢都會寫入控制台。

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

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