代码之家  ›  专栏  ›  技术社区  ›  slypete

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

  •  1
  • slypete  · 技术社区  · 15 年前

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

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

    日志的初始化发生在同一个文件settings.py文件中,在my BASE\u DIR变量下面。这里我告诉它logging.ini文件的路径:

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

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

    谢谢, 皮特

    1 回复  |  直到 15 年前
        1
  •  3
  •   Alex Martelli    15 年前

    根据 the docs

    logging.fileConfig(fname[, defaults])
    

    从 这个函数可以调用几个 来自应用程序的时间,允许 最终用户能够从 各种预屏蔽配置(如有必要 开发人员提供了一种 选择的配置)。默认为 传递给ConfigParser的 在defaults参数中指定。

    所以你可以简单地把字典作为第二个参数

    {'basedir': BASE_DIR}
    

    然后插入它的 basedir 进入你的 logging.ini

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

    诸如此类!