跳转到主要内容

在您的SQL日志中写入启动/停止事件。

项目描述

https://travis-ci.org/novafloss/django-sql-log.svg?branch=master

目标:提供一个中间件,该中间件会在SQL日志上插入开始/停止注释。

例如:

2014-12-08 09:33:58 CET LOG:  duration: 0.174 ms  statement: BEGIN
2014-12-08 09:33:58 CET LOG:  duration: 0.502 ms  statement: SET TIME ZONE 'UTC'
2014-12-08 09:33:58 CET LOG:  duration: 0.053 ms  statement: COMMIT
2014-12-08 09:33:58 CET LOG:  duration: 0.228 ms  statement: SHOW default_transaction_isolation
2014-12-08 09:33:58 CET LOG:  duration: 0.043 ms  statement: BEGIN
2014-12-08 09:33:58 CET LOG:  duration: 0.354 ms  statement: SELECT 'django_sql_log_demo.views.Index_START'
2014-12-08 09:33:58 CET LOG:  duration: 1.221 ms  statement: SELECT "dummy_article"."id", "dummy_article"."title", "dummy_article"."body" FROM "dummy_article"
2014-12-08 09:33:58 CET LOG:  duration: 0.118 ms  statement: SELECT 'django_sql_log_demo.views.Index_STOP'
2014-12-08 09:33:58 CET LOG:  duration: 0.067 ms  statement: ROLLBACK
2014-12-08 09:33:59 CET LOG:  duration: 0.179 ms  statement: BEGIN
2014-12-08 09:33:59 CET LOG:  duration: 0.513 ms  statement: SET TIME ZONE 'UTC'
2014-12-08 09:33:59 CET LOG:  duration: 0.054 ms  statement: COMMIT
2014-12-08 09:33:59 CET LOG:  duration: 0.231 ms  statement: SHOW default_transaction_isolation
2014-12-08 09:34:00 CET LOG:  duration: 117.999 ms  statement: DROP DATABASE "test_hello_world"

目前该中间件只与Postgresql数据库进行了测试,但它应该可以与基于SQL的RDBMS数据库一起使用。

用法

将此包添加到您的需求中,并按常规方式安装。您无需将应用程序添加到INSTALLED_APPS,没有模型需要同步。

按以下方式添加中间件:

MIDDLEWARE_CLASSES = (
    'django_sql_log.middleware.SQLLoggingMiddleware',
    # ...
)

尽管中间件的顺序不是关键,但最好确保中间件位于列表中的第一个位置附近。

日志格式字符串

默认情况下,日志格式字符串为:

{full_name}_{phase}

在演示网站上,这将产生

django_sql_log_demo.views.Index_START

日志中的START事件。

您可以通过将DJANGO_SQL_LOG_FORMAT添加到您的设置中来自定义此格式。可用的格式变量包括(与演示测试中的对应关系):

  • module_namedjango_sql_log_demo.views,

  • func_nameIndex,

  • full_namedjango_sql_log_demo.views.Index,

  • phase: START或STOP,

黑客技巧

如果您想运行测试套件,请查看您的demo/django_sql_log_demo目录中的settings_pg.py文件。

它包含了您运行tox测试和最终存储演示数据所需的基本数据库设置。希望通过简单地创建一个settings_pg_local.py文件,您可以将默认凭据覆盖以适应您的Postgresql服务器。

请注意,您必须连接到的数据库必须存在于该服务器上,并且您的PG用户应该能够创建删除数据库。

安装了tox后,只需运行tox命令。如果准备好了,它应该会运行Sqlite和postgresql环境的测试。

在Postgresql中记录

为了您的信息,默认情况下在postgresql设置中没有激活日志。要确保您的日志文件将显示START/STOP事件,请编辑您的postgresql.conf文件并设置此变量

log_min_duration_statement = 0

对于其他数据库系统,请参阅官方文档。

本软件根据MIT许可证条款发布。有关更多信息,请参阅LICENSE文件。

项目详情


下载文件

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

源分布

django-sql-log-1.2.1.tar.gz (4.6 kB 查看散列)

上传时间

构建分布

django_sql_log-1.2.1-py2-none-any.whl (6.3 kB 查看散列值)

上传时间 Python 2

由以下支持