如何在 debug=True 下运行 django 而不会受到 sql 日志记录的轰炸?
被迫眯着眼睛穿过所有这些噪音使得我很难看到我的调试消息......
[Thu Jul 28 19:56:27 2011] [error] DEBUG:(0.000) SELECT `django_session`.`session_key`, `django_session`.`session_data`, `django_session`.`expire_date` FROM `django_session` WHERE (`django_session`.`session_key` = foobar AND `django_session`.`expire_date` > 2011-07-28 19:56:27 ); args=('foobar', u'2011-07-28 19:56:27')
[Thu Jul 28 19:56:27 2011] [error] DEBUG:(0.000) SELECT `Users`.`id`, `Users`.`auth_id`, `Users`.`username`, `Users`.`pwhash`, `Users`.`first_name`, `Users`.`last_name`, `Users`.`email`, `Users`.`notes`, `Users`.`force_password_change`, `Users`.`deleted`, `Users`.`deleted_username` FROM `Users` WHERE (`Users`.`deleted` = False AND `Users`.`id` = 2 ); args=(False, 2)
[Thu Jul 28 19:56:27 2011] [error] DEBUG:(0.000) SELECT `Auths`.`id`, `Auths`.`developer_id`, `Auths`.`application_id` FROM `Auths` WHERE `Auths`.`id` = 2 ; args=(2,)
[Thu Jul 28 19:56:27 2011] [error] DEBUG:(0.000) SELECT `Auths`.`id`, `Auths`.`developer_id`, `Auths`.`application_id` FROM `Auths` WHERE `Auths`.`id` = 2 ; args=(2,)
最佳答案
在 Django 1.3这可以通过包含日志记录来相当简单地完成。总之,我的做法与文档非常相似,并且将重点放在登录我的应用程序上。我的 settings.py 文件目前如下所示。
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'standard': {
'format': "[%(asctime)s] %(levelname)s [%(name)s] %(message)s",
'datefmt': "%d/%b/%Y %H:%M:%S"
},
},
'handlers': {
'null': {
'level': 'DEBUG',
'class': 'django.utils.log.NullHandler',
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'standard'
},
},
'loggers': {
'django': {
'handlers': ['console'],
'propagate': True,
'level': 'INFO',
},
'django.db.backends': {
'handlers': ['console'],
'level': 'ERROR',
'propagate': False,
},
'apps': {
'handlers': ['console'],
'level': 'DEBUG',
},
}
}
如果您使用旧版本的 Django,您可以使用过滤器设置日志记录(是的,您 can do this in 1.3 也是如此。)This所以帖子应该为您提供开始所需的信息。
编辑更新
再次关注documentation其中给出了与 this 结合的示例帖子应该可以带您到达您需要去的地方。
- 添加
django
处理程序并将其沿链传播。 - 添加一个
django.db.backends
,它不会传播,但会将本底噪声提高到错误
我不认为还有什么吗?
HTH
关于django - 如何在 Debug模式下停止sql日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6867598/