在 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 服务器,以确保新的日志记录配置生效。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3