У меня есть пакет Python, который содержит серию модулей, каждый из которых содержит библиотеку подпрограмм с центральным фокусом (т.е. один модуль может иметь подпрограммы, связанные с обработкой текста). Я хотел бы иметь возможность настроить ведение журнала для всего пакета, но дать пользователю возможность настроить ведение журнала для данного модуля.
Я пытался сделать это с помощью родительских / дочерних регистраторов, чтобы в каждом модуле не было более 1 регистратора. Я могу успешно использовать родительский / дочерний подход, если я настраиваю дочерние регистраторы в самом модуле, но не могу найти правильный синтаксис для настройки дочерних регистраторов через файл конфигурации регистратора. Когда утилита журналирования Python считывает файл конфигурации, она блокирует «ключи» любого регистратора, содержащие точечные обозначения (т. Е. Если я пытаюсь определить регистраторы «root, parent, parent.child», загрузка файла конфигурации будет подавлена « ключ parent.child).
Итак, я ищу решение, при котором у данного модуля должен быть только один регистратор, но пользователь может настроить регистрацию всего пакета одним способом, но другим способом для конкретного модуля. Подход «родитель-ребенок» казался наиболее перспективным.
Если у модуля есть способ определить, для каких регистраторов определения менеджера журналов имеют определения, я мог бы также использовать это. Например, допустим, я мог определить два регистратора в моем файле конфигурации регистрации с именами allUtil и textUtil. Если модуль текстовой утилиты может определить, определен ли в диспетчере ведения журналов текстовый регистратор textUtil, он может использовать его, в противном случае он будет использовать регистратор allUtil. К сожалению, я не смог найти правильный код Python, чтобы сделать это.
Я открыт для предложений.
Und