我希望在启动django服务器时指向的几个环境中执行一些检查,以确保不同环境配置的一致性。例如,它们都处于开发配置中,或全部处于prod配置中。如果不是这种情况,我想关闭服务器。
我的问题是关闭服务器并报告问题的最佳方法是什么?目前我的计划是使用相应的异常消息引发RuntimeError。但我想知道这种方法是否有任何问题,或者是否有一种我找不到的更合适的方法。
遗憾的是,研究这个问题并没有提供足够的信息。
答案 0 :(得分:1)
我假设你将使用apache运行,这不能或者更准确地说不应该由Django控制。
你应该做的目标是使用python logging&如果您发现问题,请记录关键级别的消息。然后,您可以设置处理程序以使用mail_admins
来记录这些日志消息; https://docs.djangoproject.com/en/2.0/topics/logging/#examples
记录有几个级别;
如果设置了一个级别,它就是处理程序或记录器等所需的基本级别。因此,如果设置'level': 'ERROR'
,它将记录错误和关键消息。
如果您已实施日志记录,则可以在代码中执行类似的操作;
import logging
logger = logging.getLogger(__name__)
...
if error_found:
logger.critical("Oh no, we've found an error")
try:
...
except RuntimeError:
logger.error("We've got a problem", exc_info=True)
有关设置日志记录的进一步阅读,请阅读this。