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

1 投票
1 回答
1521 浏览
提问于 2025-04-15 23:29

我在我的settings.py文件里有一个叫BASE_DIR的设置:

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

我需要在我的logging.ini文件中使用这个变量,以便设置我的文件处理路径。

日志记录的初始化是在同一个文件,也就是settings.py文件中,位于我的BASE_DIR变量下面。在这里,我告诉它我的logging.ini文件的路径:

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

我注意到fileConfig可以接受一个默认参数。我不确定这是不是我想要的,但我找不到关于如何使用这个参数的文档。

谢谢,
皮特

1 个回答

3

根据文档

logging.fileConfig(fname[, defaults])

这个功能是从一个叫做 fname 的文件中读取日志配置,这个文件的格式是 ConfigParser。你可以在应用程序中多次调用这个功能,这样用户就可以选择不同的预设配置(前提是开发者提供了选择和加载这些配置的方式)。你还可以在 defaults 参数中指定一些默认值。

所以你可以简单地把一个字典作为第二个参数传入,比如:

{'basedir': BASE_DIR}

然后在你的 logging.ini 文件中就可以直接用它的 basedir 项:

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

类似这样的用法!

撰写回答