Python - логирование и уровни - PullRequest
0 голосов
/ 21 мая 2011

Я использую модуль Python logging для генерации файлов журнала и печати на консоли.Я настроил свой скрипт для регистрации всех уровней ошибок, без DEBUG к файлу.Но у меня проблемы с настройкой обработчика для печати на консоли.На консоли я хочу отобразить уровень INFO и ниже , а не вверх, как setLevel.Можно ли это сделать с помощью встроенного кода?

1 Ответ

4 голосов
/ 21 мая 2011

Я не совсем уверен, что вы подразумеваете под "встроенным кодом", но вы можете добиться этого с помощью фильтров.

class InfoAndLower(logging.Filter):
    def filter(self, record):
        return record.levelno <= logging.INFO

и затем присоединить экземпляр фильтра к обработчику консоли.

h = logging.StreamHandler(sys.stdout)
h.addFilter(InfoAndLower())

В Python 3.2 и более поздних вам не нужно создавать класс - вызов будет делать:

h.addFilter(lambda record: record.levelno <= logging.INFO)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...