【问题标题】:Simple log to console in Django 1.7.11Django 1.7.11 中的简单日志到控制台
【发布时间】:2018-04-21 17:22:07
【问题描述】:

我一直在为在我的 django 应用程序中创建一个简单的日志文件而烦恼。我尝试过应用this question 以及文档中的示例,但它似乎根本不起作用,我不知道出了什么问题。

我当前的日志文件,第二个例子直接来自doc

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
        },
    },
}

文档声明如下:

"此配置只向控制台发送 INFO 或更高级别的消息"

据我了解,如果我要将其放入我的 home.view.py 文件中...

import logging
log = logging.getLogger(__name__)
log.debug("Hey there it works!!")
log.info("Hey there it works!!")
log.warn("Hey there it works!!")
log.error("Hey there it works!!")

...我应该得到infowarnerror消息打印到我的控制台,每当调用home.views.py时,我认为当我访问正确的url时会发生这种情况。

这似乎是错误的。然而,似乎只有warnerror 被打印,并且只有当我运行manage.py collectstatic 时。

WARNING:home.views:Hey there it works!!
ERROR:home.views:Hey there it works!!

每当我访问从home.views.py 呈现的网页时,我都希望在控制台中接收日志消息。我该怎么做呢?

【问题讨论】:

    标签: python django


    【解决方案1】:

    这个方法:

    os.getenv('DJANGO_LOG_LEVEL', 'INFO')
    

    首先尝试获取已设置的环境变量。如果未设置,则默认为第二个参数。其可能的 DJANGO_LOG_LEVEL 设置为高于 INFO 的值。

    要测试此假设,请在您的环境中运行以下命令。

    echo $DJANGO_LOG_LEVEL
    

    确保其 1. 未设置,或 2. 设置为 INFO

    export DJANGO_LOG_LEVEL=INFO
    

    【讨论】:

    • 运行echo 不会返回任何结果。运行 env = os.getenv('DJANGO_LOG_LEVEL','INFO') 返回“信息”。它似乎没有设置。
    猜你喜欢
    • 2016-07-19
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    相关资源
    最近更新 更多