Почему моя корневая конфигурация регистрации игнорируется? - PullRequest
0 голосов
/ 23 марта 2019

Я пишу навык Alexa на Python, используя несколько модулей, и хочу глобально установить уровень и формат ведения журнала, чтобы мне не приходилось делать это в каждом модуле. Документация и другие ответы о переполнении стека показали мне, что способ сделать это - установить конфигурацию в корневом обработчике ведения журнала. Тем не менее, это не работает. Например, в настоящее время у меня есть этот блок кода в качестве первого кода, который выполняется в моей функции верхнего уровня:

logging.basicConfig(level='DEBUG'),
                    format="[ %(levelname)s ] %(asctime)s [%(name)s] %(message)s",
                    datefmt="%Y-%m-%d %H:%M:%S")
logger = logging.getLogger(__name__)
logger.warning('Test')
logger.info('Test')
logger.debug('Test')

При тестировании (используя py.test, если это актуально), я получаю следующий вывод:

------------------------ Captured log call -------------------------
lambda_handler.py           18 WARNING  Test

Как видите, журналы уровня info - и debug не обрабатываются, и формат не был применен. То же самое происходит, когда я тестирую на месте в своей функции AWS Lambda.

Однако, чтобы еще больше запутать ситуацию, когда я запускаю вышеуказанный блок кода в консоли Python моей IDE, я получаю ожидаемое поведение:

[ WARNING ] 2019-03-23 08:20:31 [__main__] Test
[ INFO ] 2019-03-23 08:20:31 [__main__] Test
[ DEBUG ] 2019-03-23 08:20:31 [__main__] Test

Я искал всю свою кодовую базу, и нет случая, чтобы эта конфигурация была переопределена, поэтому я в растерянности. Вся документация и форумы указывают мне на этот подход , и он даже работает в чистом контексте , но он просто не работает, когда мне это нужно. Чего мне не хватает?

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