Django设置模块......无法运行记录器?

时间:2017-09-27 15:18:29

标签: python django logging

我在logging文件中使用python my_app/views.py模块没有问题。

我尝试在我用于配置的staging_settings.py中使用它。但是消息永远不会到达错误日志,而来自views.py的消息可以正常工作。

我的staging_settings.py

LOGGING= { ..redacted for space.. } # the logging config-dict 

import logging
logger = logging.getLogger(__name__)
logger.debug(F"this is staging_ setup")

setup.py内运行记录器是不可能的吗?我猜服务器实际上还没有运行,所以记录器没有什么可以发送给它的?我在pythonany的地方运行这个,所以我真的没有一个控制台来简单print()或其他一些黑客替代方案。

1 个答案:

答案 0 :(得分:1)

导入设置文件时未配置日志记录,因此您无法从模块级别进行日志记录。序列是

  1. Django从您的staging_settings.py
  2. 导入设置
  3. Django使用导入模块的配置
  4. 获取LOGGING dict
  5. Django使用配置
  6. 配置logging
  7. 当您在此之后记录任何内容时,logging会根据您的配置开始输出内容
  8. 您无法在步骤1中记录并获取日志输出。

    更新:AFAIK没有与Django版本无关的方法来确定何时配置了日志记录。您可以定义自己的过滤器,在实例化时设置标志,这将在配置期间发生。无论如何,如果您需要在模块级代码中记录设置模块,这对您没有帮助。但是,在设置模块中定义并稍后调用的函数(在发生日志记录配置之后)可以进行日志记录。