捕获 Django 应用程序执行的所有 SQL 查询对于调试、性能分析和安全审核至关重要。这是实现此目的的综合指南:
修改您的 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>
此配置路由所有 Django 数据库后端消息(SQL 查询) ) 到控制台处理程序。默认情况下,只有在启用 DEBUG 模式时才可见。
要捕获名为 all-sql.log 的文件中的所有 SQL 语句,您可以添加以下配置:
<code class="python">HANDLERS = { ... # existing handlers 'file': { 'level': 'DEBUG', 'class': 'logging.FileHandler', 'filename': '/path/to/all-sql.log', # adjust file path as needed } }</code>
最后,将新的文件处理程序添加到记录器配置中:
<code class="python">LOGGERS = { ... # existing loggers 'django.db.backends': { 'level': 'DEBUG', 'handlers': ['console', 'file'], # add 'file' handler } }</code>
通过这些更改,所有 SQL 查询都将记录到控制台(启用 DEBUG 时)和指定文件。调整文件名参数中的文件路径以满足您的需要。重新启动 Django 应用程序以启用日志记录功能。
以上是如何在 Django 中实现全面的 SQL 查询日志记录?的详细内容。更多信息请关注PHP中文网其他相关文章!