Почему регистратор Python возвращает ошибки, когда ошибки нет? - PullRequest
0 голосов
/ 19 сентября 2018

Мне кажется, я не понимаю, как работает библиотека журналов Python.У меня есть простая функция:

 def all_caps(_string):

    logging.debug("debug") 
    logging.info("info") 
    logging.warning("warning") 
    logging.error("error")
    logging.critical("critical")

    return _string.upper()

Из того, что я понимаю из уроков, если я запускаю эту функцию с вводом, который не выдает ошибок (например, all_caps("hello")), я должен увидеть вывод:

DEBUG:root:debug
INFO:root:info

Однако я вижу прямо противоположное:

WARNING:root:warning
ERROR:root:error
CRITICAL:root:critical
HELLO

Я сумасшедший?Я использую ведение журнала в корне неправильно?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

По умолчанию уровень ведения журнала установлен на ПРЕДУПРЕЖДЕНИЕ.Сбросьте его с помощью logging.basicConfig, чтобы получить желаемые результаты.

>>> import logging
>>> logging.basicConfig(level=logging.DEBUG)
>>> def all_caps(_string):
...     logging.debug("debug")
...     logging.info("info")
...     logging.warning("warning")
...     logging.error("error")
...     logging.critical("critical")
...
...     return _string.upper()
...
>>> all_caps("hello")
DEBUG:root:debug
INFO:root:info
WARNING:root:warning
ERROR:root:error
CRITICAL:root:critical
'HELLO'
0 голосов
/ 19 сентября 2018

Каждая функция регистрации, которую вы вызываете из модуля, будет иметь корневой регистратор, отправляющий запрошенное сообщение на соответствующем уровне, поэтому при конфигурации по умолчанию вы должны увидеть сообщения, по крайней мере, для всех WARN ивыше .

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