如何以编程方式停止django服务器

时间:2018-05-10 18:55:13

标签: django

我希望在启动django服务器时指向的几个环境中执行一些检查,以确保不同环境配置的一致性。例如,它们都处于开发配置中,或全部处于prod配置中。如果不是这种情况,我想关闭服务器。

我的问题是关闭服务器并报告问题的最佳方法是什么?目前我的计划是使用相应的异常消息引发RuntimeError。但我想知道这种方法是否有任何问题,或者是否有一种我找不到的更合适的方法。

遗憾的是,研究这个问题并没有提供足够的信息。

1 个答案:

答案 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