」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Django 中捕獲所有 SQL 查詢以進行調試和效能分析?

如何在 Django 中捕獲所有 SQL 查詢以進行調試和效能分析?

發佈於2024-11-25
瀏覽:812

How to Capture All SQL Queries in Django for Debugging and Performance Analysis?

在Django 中記錄所有SQL 查詢

在Django 中,捕獲應用程式執行的SQL 查詢可以為調試、效能分析提供寶貴的見解,以及安全監控。以下是完成此操作的方法:

要記錄所有 SQL 查詢,包括來自管理網站的查詢,請修改 settings.py 檔案中的 LOGGING 配置。新增以下程式碼片段以與現有的 LOGGING 欄位合併:

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'],
        }
    }
}

當 settings.py 中的 DEBUG 標誌設為 True 時,此設定會將所有 SQL 查詢路由到控制台。如果您希望將查詢記錄到檔案中,則可以將“console”處理程序替換為“FileHandler”,並指定日誌檔案的路徑。

例如,將查詢記錄到名為all-sql.log,使用以下處理程序:

'handlers': {
    'all_sql_file': {
        'level': 'DEBUG',
        'filters': ['require_debug_true'],
        'class': 'logging.FileHandler',
        'filename': 'all-sql.log',
    }
}

進行這些變更後請務必重新啟動 Django 伺服器,以確保新的日誌記錄配置生效。

版本聲明 本文轉載於:1729157237如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3