【问题标题】:Where are these Django log messages disappearing to?这些 Django 日志消息消失在哪里?
【发布时间】:2014-01-28 23:40:35
【问题描述】:

我正在运行 Django 1.54 shell:

% python ~/predictstat/manage.py shell
>>> import django
>>> django.get_version()
'1.5.4'

然后我设置日志记录:

>>> import logging
>>> logger = logging.getLogger(__name__)

然后我给你看日志配置:

 >>> from django.conf import settings
 >>> settings.LOGGING
 {'handlers': {'file': {'level': 'DEBUG', 'interval': 1, 'when': 'midnight', 'filename': 'logs/myApp.log', 'formatter': 'verbose', 'class': 'logging.handlers.TimedRotatingFileHandler'}}, 'loggers': {'myApp': {'level': 'DEBUG', 'handlers': ['file']}, 'django': {'level': 'DEBUG', 'propagate': True, 'handlers': ['file']}}, 'version': 1, 'disable_existing_loggers': False, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s'}}}

然后我打印一条日志消息:

>>> logger.info("Hello World")

但据我所知,此日志消息并未显示在任何文件或其他任何地方。当然不在 logs/myApp.log 中。

谁能告诉我这些日志消息消失在哪里?为什么此日志记录不起作用?

【问题讨论】:

    标签: python django logging


    【解决方案1】:

    在 python shell 中__name__ 将评估为“ma​​in”,并且您没有为此名称配置记录器,也没有为根记录器配置配置。同样使用文件记录器,您应该使用绝对路径 - 但在潜在的多进程设置中使用文件记录器不是一个好主意。

    【讨论】:

      【解决方案2】:

      它没有被任何处理程序处理,这就是它没有在任何地方被记录的原因。您的设置为定义的两个记录器定义了处理程序:myAppdjango

      但是你得到了一个名为__main__ 的记录器,它是shell 中__name__ 的值。我建议尝试以下几行:

      >>> logger = logging.getLogger("myApp")
      >>> logger.info("My Test line")
      

      现在您应该在日志文件中看到它。

      【讨论】:

        【解决方案3】:

        请先致电logging.basicConfig

        logging.basicConfig(filename='debug.log', level=logging.DEBUG)
        log = logging.getLogger(__name__)
        log.debug('Dig this, I\'m printing.')
        

        有关更高级的示例,请参阅 Logging Cookbook,该示例展示了如何同时记录到控制台和文件以及格式化记录器的输出,甚至跨不同的模块。

        【讨论】:

        • Django 负责根据设置配置记录器,因此无需调用 basicConfig。
        • 啊,我明白了。这绝对看起来像是一般的logging 模块问题,但在阅读了Django logging docs 之后,我相信你是对的。
        猜你喜欢
        • 1970-01-01
        • 2011-07-11
        • 1970-01-01
        • 1970-01-01
        • 2011-02-18
        • 2014-06-02
        • 2021-12-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多