在django生产中记录所有sql查询是一个好主意吗?

时间:2017-02-22 06:36:29

标签: python django postgresql python-2.7

我正在考虑使用类似的中间件记录每个请求对postgresql数据库进行的所有sql查询 Snippet 1 要么 Snippet 2

它会影响应用程序的性能吗? Postgres普通日志记录对我来说不起作用,因为除了sql查询,我还需要存储一些额外的信息。

我尝试使用数据库日志记录来记录所有sql查询,但遗憾的是,当设置文件中的DEBUG = False时,它似乎不起作用。

1 个答案:

答案 0 :(得分:3)

您可以通过在setting.py中定义Logging来进行自定义日志记录 请阅读本文件。

使用此doc:

可以在debug = false时记录

logging doc 将此代码添加到setting.py:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
    'file': {
        'level': 'DEBUG',
        'class': 'logging.FileHandler',
        'filename': '/path/to/debug.log',
    },

},
'loggers': {
    'django.db.backends': {
        'handlers': ['file'],
        'level': 'DEBUG',
    },
}}

在上面的两个链接中,你在snippet2中说它只在debug = true时有效 在第35行的snippet1中有一个这样的条件:

if len(connection.queries) > 0 and settings.DEBUG:
    ....

显示它在debug = true

中有效

我希望它有所帮助。