如何调试Django 1.8 AppConfig?

时间:2015-08-16 04:44:11

标签: django django-registration django-signals django-logging

我正在使用Django 1.8。

我试图连接django-registration user_registration signal

要结束a signal,这篇文章非常明确:使用AppConfig.ready()。我想我已正确连线,但很明显我没有,因为它不能正常工作。所以,为了看看发生了什么,我故意拼错了我的registrationapp / __ init __中的配置类的名称.py:

default_app_config = 'registrationapp.apps.RegistrationAppConfgOOPS'

我没有看到任何错误消息或任何消息。

我如何判断registerapp / __ init__.py是否被加载,以及是否正在创建和加载正确的应用程序配置?

顺便说一句,我设置了控制台日志记录完全,如here所述,但它没有多少记录到控制台,不知道为什么。 (它确实记录了GET请求,但它们看起来是不同的日志记录。)

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
        },
    },
}

1 个答案:

答案 0 :(得分:2)

如何判断registrationapp/__init__.py是否被加载?

一种非常简单的方法是在其中放置顶级print()。如果已加载,您将看到输出。

...如果正在创建和加载正确的应用配置?

同样的事情,在您的应用配置文件中添加print()

我刚尝试在我的项目中使用default_app_config的虚假名称,而Django提出了AttributeError,所以我认为确实没有找到你的应用。

关于日志记录,documentation说明了这一点:

  

默认情况下,此配置仅向控制台发送级别为INFO或更高级别的消息。 Django没有记录很多这样的消息。设置环境变量DJANGO_LOG_LEVEL = DEBUG以查看Django的所有调试日志记录,它非常详细,因为它包含所有数据库查询。

因此请尝试使用os.getenv('DJANGO_LOG_LEVEL', 'DEBUG')