在sql日志中写入开始/停止事件。
django-sql-log的Python项目详细描述
目标:提供一个插入开始/停止注释的中间件 会登录到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
对于日志中的开始事件。
通过将DJANGO_SQL_LOG_FORMAT添加到 你的设置。可用的格式变量是 演示测试):
- module_name:django_sql_log_demo.views,
- func_name:Index,
- full_name:django_sql_log_demo.views.Index,
- phase:开始或停止,
黑客攻击
如果要运行测试套件,请查看settings_pg.py文件 在您的demo/django_sql_log_demo目录中。
它带有基本的数据库设置,您需要运行毒理测试和 最终存储演示数据。希望通过创建一个 settings_pg_local.py文件,您可以覆盖默认凭据以适应 你的postgresql服务器的细节。
请记住,您必须连接到^ {STR 1 } $的数据库必须存在<强> 在这个服务器上,pg用户应该能够create和delete 数据库。
安装了tox后,只需运行命令tox。这个应该运行 sqlite和postgresql环境的测试(如果准备好的话)。
登录postgresql
有关信息,日志在PostgreSQL设置中默认不激活。 若要确保日志文件将显示开始/停止事件,请转到“编辑” 您的postgresql.conf文件并设置此变量:
log_min_duration_statement = 0
其他数据库系统请参阅官方文件。
这个软件是根据麻省理工学院的许可条款发布的。拜托 有关详细信息,请参阅LICENSE文件。