0

我正在尝试使用 Django Logging 记录我的数据库查询,但日志消息似乎是无效的。我正在使用带有 MySQL 数据库的 Django 2.1、Python 3.6。

我的settings.py

LOGGING = {
    'version': 1,
    'formatters': {
        'standard': {
            'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
        },
    },
    'handlers': {
        'default': {
            'level':'DEBUG',
            'class':'logging.handlers.RotatingFileHandler',
            'filename': SITE_ROOT + '/mylog.log',
            'maxBytes': 1024*1024*5, # 5 MB
            'backupCount': 5,
            'formatter':'standard',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['default'],
            'level': 'DEBUG',
            'propagate': True
        },
    }
}

结果日志:

2019-02-07 11:27:17,642 [DEBUG] django.db.backends: (0.000) None; args=None
2019-02-07 11:27:17,642 [DEBUG] django.db.backends: (0.000) None; args=None
2019-02-07 11:27:17,643 [DEBUG] django.db.backends: (0.000) None; args=(2,)
2019-02-07 11:27:17,657 [DEBUG] django.db.backends: (0.000) None; args=(2,)
2019-02-07 11:27:17,670 [DEBUG] django.db.backends: (0.000) None; args=(2,)
2019-02-07 11:27:17,843 [DEBUG] django.db.backends: (0.165) None; args=(2, 2, 2)

我怎样才能有 SQL 查询?

4

3 回答 3

1

聚会有点晚了,但我刚刚遇到了这个问题,并在 django-debug-toolbar 的 GitHub 页面上找到了关于这个特定问题的解决方案。显然mysqlclient==1.3.14可能是罪魁祸首,并且使用它的不同版本(我尝试了 1.3.12 和 1.4.4)为我解决了这个问题。

于 2019-08-24T15:20:47.723 回答
0

我遇到了同样的问题。

肯定是mysqlclient的问题。

我使用的是 django 1.11.6,这是一个旧的“补丁”版本。

我刚刚尝试使用最新的 1.11.x、1.11.29 升级 django,并且错误也在这里

所以升级 Django 并不能修复这个 bug,它没有在 django 的 1.11.x 分支中修复

mysqlclient 的 1.4.6 版本是最后一个没有问题的版本,在 1.11.6 和 1.11.29

我创建了问题https://github.com/PyMySQL/mysqlclient-python/issues/441

于 2020-08-03T15:55:35.227 回答
0

这个错误已经修复了。升级你的 Django。见https://github.com/django/django/pull/10726

于 2020-08-03T15:57:17.783 回答