如何调试生产服务器而不查找设置和记录文件不起作用?

时间:2013-05-03 14:59:45

标签: django logging django-settings

我正在尝试诊断为什么我的应用没有找到它的设置文件 设置显示在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发送日志消息来测试配置吗?

1 个答案:

答案 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