Какой идиоматический способ поделиться экземпляром регистратора между модулями в моем скрипте Python? - PullRequest
4 голосов
/ 14 марта 2011

Я создал свой собственный простой класс регистратора, который использует взаимодействие COM для перенаправления на стандартный регистратор компании.Я хотел бы создать экземпляр регистратора в начале моего сценария, а затем использовать этот регистратор, чтобы все модули в моем сценарии могли вести централизованный журнал.

Существует ли идиоматический способ совместного использования этого экземпляра регистратора между всеми модулями безв частности, добавить параметр logger в конструктор каждого класса, который должен регистрировать?

Стоит ли использовать глобальную переменную или синглтон, или есть другой рекомендуемый способ разделения регистратора между модулями?

Ответы [ 2 ]

5 голосов
/ 14 марта 2011

Почему бы вам не использовать стандартное ведение журнала Python и не написать обработчик для взаимодействия со стандартной системой ведения журнала вашей компании?Ведение журнала Python специально разработано, поэтому вам не нужно передавать экземпляры средства ведения журнала между слоями вашего кода - средства ведения журнала Python, по сути, уже являются одиночными.

Обработчики для ведения журнала stdlib тоже довольно легко написать - существует множество примеровсторонних обработчиков.

Раскрытие информации: я поддерживаю стандартный пакет журналов библиотеки Python.

1 голос
/ 14 марта 2011

Я бы использовал модуль вместо класса, так как модуль Python уже одиночный.

Несколько подходов здесь .

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