django - 如何在 Debug模式下停止sql日志记录?

标签 django debugging logging

如何在 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 结合的示例帖子应该可以带您到达您需要去的地方。

  1. 添加 django 处理程序并将其沿链传播。
  2. 添加一个django.db.backends,它不会传播,但会将本底噪声提高到错误

我不认为还有什么吗?

HTH

关于django - 如何在 Debug模式下停止sql日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6867598/

相关文章:

python - Django 社交网站与 heroku

python - Django 向自己发送请求

c++ - 如何启用BDS2006的C++ WARN & TRACE宏

Django:创建对象和更新对象时输入日期格式不同

Django __init__() 需要 1 个位置参数,但给出了 2 个

c++ - 错误 C2082 : redefinition of formal parameter 'tmp'

c# - CLR调试器和 'var'

java - 如何禁用 Logback 文件附加程序的日志

python - Pyramid 覆盖默认请求日志以添加新参数

logging - logrotate cron 作业不旋转某些日志