”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在 Django 中捕获所有 SQL 查询以进行调试和性能分析?

如何在 Django 中捕获所有 SQL 查询以进行调试和性能分析?

发布于2024-11-25
浏览:436

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