我正在尝试诊断为什么我的应用没有找到它的设置文件 设置显示在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',
)
我试图直接从shell记录消息:
>> import logging
>> logging.debug("does this show up in log file")
日志文件中没有显示任何内容。
我试图通过shell查看日志记录配置。
>> logging.__dict__
>> logging.basicConfig.__dict__
从未显示过LOG_FILENAME。
如何确定日志消息未显示在LOG_FILENAME中的原因?
可以从shell发送日志消息来测试配置吗?
答案 0 :(得分:2)
您的日志记录配置为仅记录关键消息。您可能希望使用logging.critical
代替logging.debug
作为短期方法,或者使用配置中的level=logging.DEBUG
来降低要记录的消息级别。
此外,logging.*
方法使用根级记录器。您可能希望通过在配置中提供更多记录器并使用类似
logger = logging.getLogger(logger_name) #logger name is often just __name__
logger.debug(whatever)
有关详细信息,请参阅logging documentation。