1

我正在尝试诊断为什么我的应用找不到它的设置文件。
设置显示在 Django 工具栏的底部,但回溯显示错误:

UndefinedError: 'settings' is undefined

我将以下内容添加到我的代码中,以了解为什么找不到设置,因为它们可以从 shell 和 Python 路径上看到。

import logging  
logging.debug("settings.LANGUAGE_CODE: " settings.LANGUAGE_CODE)  

settings.py 文件中定义的日志文件中没有显示任何内容。

以下是设置的定义方式:

LOG_FILENAME = 'askbot.log'
logging.basicConfig(
    filename=os.path.join(os.path.dirname(__file__), 'log', LOG_FILENAME),
    level=logging.CRITICAL,
    format='%(pathname)s TIME: %(asctime)s MSG: %(filename)s:%(funcName)s:%(lineno)d %(message)s',
)

我试图直接从外壳记录一条消息:

>> import logging  
>> logging.debug("does this show up in log file") 

日志文件中没有显示任何内容。

我试图通过 shell 查看日志配置。

>> logging.__dict__
>> logging.basicConfig.__dict__

LOG_FILENAME 从未显示。

如何找出日志消息未显示在 LOG_FILENAME 中的原因?
可以从 shell 发送日志消息来测试配置吗?

4

1 回答 1

2

您的日志记录被配置为仅记录关键消息。您可能希望在配置中使用logging.critical而不是logging.debug作为短期方法,或降低要记录的消息级别level=logging.DEBUG

此外,logging.*方法使用根级记录器。您可能希望通过在配置中提供更多记录器并使用类似的东西来增加粒度

logger = logging.getLogger(logger_name) #logger name is often just __name__
logger.debug(whatever)

有关详细信息,请参阅日志记录文档

于 2013-05-03T15:08:17.413 回答