Как мне использовать настройки django в моем файле logging.ini? - PullRequest
1 голос
/ 03 июня 2010

В моем файле 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 голосов
/ 03 июня 2010

Согласно документам ,

logging.fileConfig(fname[, defaults])

Считывает конфигурацию регистрации из Файл формата ConfigParser с именем fname. Эту функцию можно назвать несколькими раз из приложения, что позволяет конечный пользователь может выбирать из различные готовые конфигурации (если разработчик предоставляет механизм для представить выбор и загрузить выбранная конфигурация). По умолчанию передается в ConfigParser может быть указано в аргументе по умолчанию.

Таким образом, вы можете просто передать в качестве второго аргумента словарь, подобный

{'basedir': BASE_DIR}

, а затем просто интерполируйте его запись basedir в файле logging.ini:

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

и тому подобное!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...