Python регистратор печатает строку дважды без configure_logging () - PullRequest
0 голосов
/ 17 января 2020

При использовании регистратора python моя программа запускается нормально с регистрацией, но в какой-то момент вывод журнала начинает выводить строки дважды, примерно так:

DEBUG:pluginbrowser:Scanning plugs
DEBUG:pluginbrowser:Doing good stuff
....
INFO:pluginbrowser:=== doing something ===
=== doing something ===

В настоящее время все мои файлы python содержат строка

LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)

Таким образом, дублированное сообщение приходит из файла pluginbrowser.py. Изучив это, я обнаружил, что в начале моей программы одни и те же файлы выводят некоторый журнал без удвоения строк. Я пытался выяснить, в какой момент именно это происходит, но я как-то застрял здесь.

Я также читаю сообщения журнала, появляющиеся дважды с Python Ведение журнала , но я не использую configure_logging на всех.

1 Ответ

0 голосов
/ 20 января 2020

Похоже, вы добавили дополнительный обработчик где-то по пути. Я бы искал addHandler в коде. Вы также можете отлаживать и смотреть логгер. root .handlers

Вот как я могу воспроизвести ваши эффекты:

In [1]: import logging

In [2]: logging.basicConfig(level=logging.DEBUG)

In [3]: logger = logging.getLogger('pluginbrowser')

In [4]: logger.info('=== doing something ===')
INFO:pluginbrowser:=== doing something ===

In [5]: logging.root.addHandler(logging.StreamHandler())

In [6]: logger.info('=== doing something ===')
INFO:pluginbrowser:=== doing something ===
=== doing something ===
...