在 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 服务器,以确保新的日志配置生效。
以上是如何在 Django 中捕获所有 SQL 查询以进行调试和性能分析?的详细内容。更多信息请关注PHP中文网其他相关文章!