Переопределение корневого регистратора журналирования ⇐ Python

Программы на Python
Anonymous
Переопределение корневого регистратора журналирования

Сообщение Anonymous »

В моем текущем проекте есть тысячи строк кода, которые выглядят следующим образом:

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

logging.info("bla-bla-bla")
Я не хочу менять все эти строки, но я бы изменил поведение журнала. Моя идея состоит в том, чтобы заменить корневой регистратор на другой экспериментальный регистратор, который настраивается с помощью ini-файла:

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

[loggers]
keys =  Experimental

[formatter_detailed]
format = %(asctime)s:%(name)s:%(levelname)s %(module)s:%(lineno)d:  %(message)s

[handler_logfile]
class = FileHandler
args = ('experimental.log', 'a')
formatter = detailed

[logger_Experimental]
level = DEBUG
qualname = Experimental
handlers = logfile
propagate = 0
Теперь установка нового корневого регистратора выполняется с помощью этого фрагмента кода:

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

logging.config.fileConfig(path_to_logger_config)
logging.root = logging.getLogger('Experimental')
Безопасно ли переопределение корневого регистратора? Может быть, есть более удобный способ?

Я пробовал использовать Google и просматривал вопросы по stackoverflow, но ответа не нашел.

Подробнее здесь: https://stackoverflow.com/questions/742 ... oot-logger

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