gpt4 book ai didi

python - django.db.backends sql 查询调试日志中需要数据库别名(connection_name)

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:07 34 4
gpt4 key购买 nike

当我有DEBUG=True时,我可以使用django设置中的记录器配置打印sql日志,如下所示

'django.db.backends': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': False,
},

[14/Jun/2017 19:50:19] DEBUG [django.db.backends:execute] (0.213)
SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = E'79a9c6354bf0f30967adbcb0d572707a' AND "django_session"."expire_date" > E'2017-06-14 19:50:18.019996' );
args=('79a9c6354bf0f30967adbcb0d572707a', u'2017-06-14 19:50:18.019996')

但我得到的信息只有持续时间、sql 和参数
引用django-doc

我的settings.py 中有多个数据库需要连接,并且我正在使用DATABASE_ROUTERS 将查询路由到主/从复制。但我无法找到将数据库别名 (connection_name) 记录到记录器的方法。
有没有办法在不使用 django-debug-toolbar 的情况下打印带有 connection_name 的所有查询在日志文件中?

最佳答案

您似乎想要记录每个数据库的查询数量。有一种方法可以在不使用任何自定义调试工具栏的情况下做到这一点。编写自定义中间件并记录查询,如下所示。

from django.db import connections

for con in connections:
print con,len(connections[con].queries), connections[con].queries

关于python - django.db.backends sql 查询调试日志中需要数据库别名(connection_name),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44558025/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com