跳转到主要内容

将Django的SQL语句写入JSONL日志文件

项目描述

Django SQL日志中间件

一个中间件,用于将Django SQL查询和统计信息写入jsonl文件。当您有数百兆字节的日志文件时,这使得分析变得更容易。

django-sqlprint-middleware项目的启发

安装

pip install django-sql-log-middleware

将其添加到settings.py的中间件部分

MIDDLEWARE = [
    ...
    'django_sql_log_middleware.SqlLogMiddleware',
]

输出

输出将被写入以下格式中指定的路径。每行都是一个JSON对象,覆盖单个请求。时间是当前的Unix时间。查询时间以秒为单位。

{
        "path": "/path/to/api?abc=1234",
        "time": 1649301150,
        "queries": [
            {"sql": "select * from users", "time": 1.1234},
            {"sql": "select * from things", "time": 4.1234},
        ]
}

设置

在您的settings.py文件中指定以下设置

  • DEBUG 仅当DEBUG设置时,此中间件才会运行。
  • SQLLOG_MIDDLEWARE 将此变量设置为False禁用中间件而不删除。默认为True
  • SQLLOG_PATH_RE 仅在匹配的路径中记录SQL查询的正则表达式模式。默认为.*
  • SQLLOG_LOG 写入日志的文件。默认为django_queries.jsonl
  • SQLLOG_LOG_POST 记录request.POST数据。默认为False
  • SQLLOG_LOG_META 记录request.META数据。默认为False

无法JSON序列化的任何输出将呈现为<not serializable>

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解有关 安装包 的更多信息。

源分布

django-sql-log-middleware-0.1.8.tar.gz (3.7 kB 查看散列值)

上传时间

构建分布

django_sql_log_middleware-0.1.8-py3-none-any.whl (4.4 kB 查看散列值)

上传时间 Python 3

由以下支持