我有一个在RHEL 6中使用Apache运行的Django应用程序,mod_wsgi,我的DEBUG = True
文件中有settings.py
。
当我在尝试访问Web应用程序时突然遇到500个内部服务器错误时,似乎突然发生了(没有对服务器进行任何更改)。对于Apache,错误日志中没有任何内容(我几乎没有任何意义),即使在Django中将DEBUG设置为true,我仍然只能得到500页。
我尝试通过跟踪线程here添加广泛的Django日志记录,但它没有记录任何内容。
关于如何获得有关可能导致问题的更多信息的任何想法?
答案 0 :(得分:0)
如果您已启用调试且工作正常,则应显示所有错误。
但是,无论您是否可以让Django通过电子邮件向您发送任何服务器错误,这些错误在响应生产环境问题时尤其有用。 error reporting上的文档会有所帮助,具体而言:
至少,您需要指定EMAIL_HOST,可能需要指定EMAIL_HOST_USER和EMAIL_HOST_PASSWORD,
我认为这是标准日志记录,但无论如何,在settings.py
文件中确保ADMINS = ()
不为空,然后检查日志记录配置。
当您使用DEBUG
模式时,请确保您还没有包含require_debug_false
过滤器。
ADMINS = (
# ('Your Name', 'your_email@example.com'),
)
# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# 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': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}
如果你已经掌握了所有这些,那么你应该对错误有所了解。
答案 1 :(得分:0)
事实证明,除了Apache问题之外,它根本不是Django问题。 Django应用程序受LDAP身份验证服务保护,该服务在Apache配置文件中配置。但是,LDAP服务器已关闭,因此Apache无法联系它。
即使我的配置文件中设置了LogLevel debug
,Apache仍然没有记录此问题的原因仍然没有任何意义......