Как мне получить собственный пакет конфигурации ведения журнала, который хорошо работает со сторонними пакетами?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как мне получить собственный пакет конфигурации ведения журнала, который хорошо работает со сторонними пакетами?

Сообщение Anonymous »

Стандартный способ создания экземпляра регистратора находится на уровне модуля (насколько я понимаю), поэтому я предполагаю, что большинство сторонних пакетов делают это:

Код: Выделить всё

# consider this somepackage
import logging
logger = logging.getLogger(__name__)
def blah():
logger.info("slkdjflksjfkld")
...
Но я хочу, чтобы мои приложения настраивали ведение журнала всего проекта с помощью общего пакета.
Что происходит, это после моего импорта fileConfig вызывается, и ведение журнала, форматирование и т. д. настраиваются с нуля, и он удаляет все средства ведения журнала уровня модуля, которые были в импортированных пакетах.
Так, например, если какой-то пакет инициировал журналирование как выше, и я делаю это:

Код: Выделить всё

# logging.getLogger() is going to be called immediately
from somepackage import blah

# Import my logging config package and get a logger
from mycomp.logging import get_logger
logger = get_logger(my custom params)
Моя функция get_logger() настраивает ведение журнала всего проекта и удаляет обработчики из некоторого пакета.
Но если я сделайте это в следующем порядке: какой-нибудь пакет правильно получит мою глобальную конфигурацию журналирования:

Код: Выделить всё

# FIRST Import my logging config package and get a logger before anything else
from mycomp.logging import get_logger
logger = get_logger(my custom params)

# Now logging.getLogger() picks up my custom global logging config
from somepackage import blah
Я что-то упустил из того, как это работает? Может быть, сторонние пакеты на самом деле не создают экземпляры регистраторов при импорте и не реализуют какой-то синглтон? Но судя по тому, что я вижу на практике, похоже, они делают это на уровне модуля.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ith-3rd-pa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»