在您的SQL日志中写入启动/停止事件。
项目描述
目标:提供一个中间件,该中间件会在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_name: django_sql_log_demo.views,
func_name: Index,
full_name: django_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 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | eba914e0cfaa200be3923f899e0eff76a782d8277cf946467671dba4d2c0b97f |
|
MD5 | 74619c6c47c00fbd6e0310a987f85e3b |
|
BLAKE2b-256 | 3e89f1cae5e471b3dab269ebe0d3353afd95f31a5c742f0a1fb3751c66a05a7b |
django_sql_log-1.2.1-py2-none-any.whl 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 70d0d94b37a78611965c55b4250306367125e4131e5f090dd40873e44b21c8d3 |
|
MD5 | ccb8395bf072b5bbeea63083cf2d7351 |
|
BLAKE2b-256 | 4503bc417392c249dd9b95a2013b8387065433cb0bd7137277f8e9cc8a39b96f |