Я использую Python 2.7 для многомодульного проекта.Как уже упоминалось здесь Я настроил вход в свой main.py, как показано ниже
logging.basicConfig(
format='%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s',
datefmt='%d-%m-%Y:%H:%M:%S',
filename='/home/ubuntu/logs/centralized_upgrade.log',
level=logging.INFO)
В каждом другом модуле, где бы мне ни приходилось регистрироваться, я просто звоню, как показано ниже
import logging
...
logging.info('Hello World')
Но у меня возникает сомнение, если в каком-то модуле, если корневой логгер снова переконфигурирован (может быть что-то вроде ниже)
logging.basicConfig(
format='%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s',
datefmt='%d-%m-%Y:%H:%M:%S',
filename='/home/ubuntu/logs/module.log',
level=logging.INFO)
, тогда все сообщения журнала начнут входить в новый файл.Может кто-нибудь дать мне знать, как лучше всего с этим справиться?Как я могу предотвратить перенастройку корневого регистратора?Я предполагаю, что конфигурация регистрации должна оставаться такой же, как определено в main.py
, независимо от какой-либо реконфигурации, выполненной в любых дочерних модулях.
Во многих местах рекомендуется не использовать корневой регистратор и определять регистратор, как упомянуто здесь .Но, насколько я понимаю, в этом случае также, если какой-то модуль настраивает корневой регистратор, журнал может перейти в другой файл, поскольку все регистраторы наследуются от корневого регистратора.