Как можно объединить пример поваренной книги python для ведения журнала сетевых событий с потоком logging.config.listen? - PullRequest
0 голосов
/ 09 апреля 2020

Теоретически это должно быть просто. Возьмем пример из поваренной книги регистрации здесь:

https://docs.python.org/3/howto/logging-cookbook.html#sending и получение событий регистрации по сети

Я хочу добавить возможность изменить конфигурацию регистрации на лету. Я просто добавил:

logging.config.dictConfig(...) # setup the root logger
config_thread = logging.config.listen()
config_thread.start()
tcpserver = LogRecordSocketReceiver()

и при запуске это прекрасно работает с предоставленным примером отправки событий журнала по сети на приемник сокета.

Однако проблема возникает после отправки в новой конфигурации. После этого сервер журналов не будет выдавать больше сообщений. Это происходит, даже если каждый handleLogRecord() вызов получает новый экземпляр регистратора через logging.getLogger().

Есть какие-нибудь идеи относительно того, что мне не хватает?

1 Ответ

1 голос
/ 09 апреля 2020

Необходимо убедиться, что в словаре конфигурации для disable_existing_loggers установлено значение False. В противном случае, когда будет применена новая конфигурация, существующие регистраторы будут отключены и больше не будут выводить.

...