如何调试 Django 1.8 AppConfig?
How to debug Django 1.8 AppConfig?
我正在使用 Django 1.8。
我正在尝试连接 django-registration user_registration signal。
连接a signal, this post is pretty explicit: use AppConfig.ready()。我想我已经正确连接了它,但显然我没有,因为它不工作。所以,为了看看发生了什么,我故意在 registrationapp/__init__.py:
中拼错了配置 class 的名称
default_app_config = 'registrationapp.apps.RegistrationAppConfgOOPS'
我没有看到任何错误消息,也没有看到任何消息。
如何判断 registrationapp/__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'),
},
},
}
如何判断 registrationapp/__init__.py
是否正在加载?
一种非常简单的方法是在其中放置顶级 print()
。如果已加载,您将看到输出。
...是否正在创建和加载正确的应用程序配置?
同样,在您的应用程序配置文件中添加 print()
。
我刚刚尝试在我的项目中为 default_app_config
使用虚假名称,Django 引发了 AttributeError
,所以我认为确实找不到您的应用程序。
关于日志记录,documentation 是这样说的:
By default, this config only sends messages of level INFO or higher to the console. Django does not log many such messages. Set the environment variable DJANGO_LOG_LEVEL=DEBUG to see all of Django’s debug logging which is very verbose as it includes all database queries.
所以请尝试使用 os.getenv('DJANGO_LOG_LEVEL', 'DEBUG')
。
我正在使用 Django 1.8。
我正在尝试连接 django-registration user_registration signal。
连接a signal, this post is pretty explicit: use AppConfig.ready()。我想我已经正确连接了它,但显然我没有,因为它不工作。所以,为了看看发生了什么,我故意在 registrationapp/__init__.py:
中拼错了配置 class 的名称default_app_config = 'registrationapp.apps.RegistrationAppConfgOOPS'
我没有看到任何错误消息,也没有看到任何消息。
如何判断 registrationapp/__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'),
},
},
}
如何判断 registrationapp/__init__.py
是否正在加载?
一种非常简单的方法是在其中放置顶级 print()
。如果已加载,您将看到输出。
...是否正在创建和加载正确的应用程序配置?
同样,在您的应用程序配置文件中添加 print()
。
我刚刚尝试在我的项目中为 default_app_config
使用虚假名称,Django 引发了 AttributeError
,所以我认为确实找不到您的应用程序。
关于日志记录,documentation 是这样说的:
By default, this config only sends messages of level INFO or higher to the console. Django does not log many such messages. Set the environment variable DJANGO_LOG_LEVEL=DEBUG to see all of Django’s debug logging which is very verbose as it includes all database queries.
所以请尝试使用 os.getenv('DJANGO_LOG_LEVEL', 'DEBUG')
。