Контроль уровня журнала файлов в одной папке - PullRequest
0 голосов
/ 02 июня 2019

Я хочу записывать информацию из нескольких модулей Python в одну и ту же папку (my_code).

level_1
  some_file.py
  another_file.py
  level_2
    more_code.py
    my_code
      __init__.py
      file1.py
      file2.py
      file3.py

Если я добавлю приведенный ниже код в все мои файлы все будут работать

import logging
import sys
LOG = logging.getLogger(__name__)
LOG.setLevel(logging.INFO)
handler = logging.StreamHandler(sys.stdout)
LOG.addHandler(handler)

, но у меня есть несколько проблем с этим:

  1. Я должен иметь возможность добавить это к __init__ и иметь только инициализацию LOG в каждом файле.
  2. Это не должно влиять на регистрацию в сторонних модулях или любых других модулях, не разработанных / не контролируемых мной.
  3. Если я хочу изменить уровень, скажем DEBUG, мне нужно пройти через всефайлы ...

Я пытался добавить это к __init__

import logging
import sys
handler = logging.StreamHandler(sys.stdout)
logging.basicConfig(level=logging.DEBUG, handlers=[handler])

, что позволило мне установить LOG в каждом файле, но в то же время затронуло любоеведение журнала из сторонних модулей и чужого кода.

Как правильно написать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...