如何在logging.ini文件中使用django设置?

时间:2010-06-03 00:49:29

标签: python django logging

我的settings.py文件中有一个BASE_DIR设置:

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

我需要在logging.ini文件中使用此变量来设置文件处理程序路径。

日志记录的初始化发生在我的BASE_DIR变量下面的相同文件settings.py文件中。在这里,我告诉它我的logging.ini文件的路径:

LOG_INIT_DONE=False
if not LOG_INIT_DONE:
   logging.config.fileConfig(LOGGING_INI)
   LOG_INIT_DONE=True

我注意到fileConfig可以使用默认参数。我不确定这是否是我正在寻找的,但我似乎无法找到有关如何使用此参数的任何文档。

谢谢, 皮特

1 个答案:

答案 0 :(得分:3)

根据the docs

logging.fileConfig(fname[, defaults])
  

从a读取日志记录配置   名为fname的ConfigParser格式文件。   这个函数可以调用几个   来自应用程序的时间,允许   最终用户可以选择   各种预罐装配置(如果   开发人员提供了一种机制   提出选择并加载   选择配置)。默认为   传递给ConfigParser即可   在defaults参数中指定。

所以你可以简单地将第二个参数传递给像

这样的字典
{'basedir': BASE_DIR}

然后只在basedir文件中插入其logging.ini条目:

[SomeSection]
somefile: %(basedir)s/foobar.txt

之类的!