установка уровня журнала для обработчика не работает в python - PullRequest
0 голосов
/ 25 мая 2020

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

import os
import logging

log_file = 'myapp.log'

logger = logging.getLogger(my_logger)

f_handler = logging.FileHandler(log_file)
f_handler.setLevel(logging.DEBUG)
f_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
f_handler.setFormatter(f_formatter)
logger.addHandler(f_handler)


logger.debug('this is debug message')
logger.info('this is info message')
logger.warning('this is warning message')
logger.error('this is error message')
logger.critical('this is critical message')

Я вижу только предупреждения и сообщения более высокого уровня в моем файле myapp.log

2020-05-25 19:28:13,259 - my_logger - WARNING - this is warning message
2020-05-25 19:28:13,260 - my_logger - ERROR - this is error message
2020-05-25 19:28:13,260 - my_logger - CRITICAL - this is critical message

Что мне не хватает?

1 Ответ

1 голос
/ 25 мая 2020

Вам нужно установить уровень логгера вместе с обработчиком. Обработчики регистрируют сообщение, которое равно или превышает оба уровня журнала (уровень ведения журнала и уровень обработчика)

Таким образом, установка уровня от logger до DEBUG, как показано ниже, позволит обработчикам выбрать уровень ведения журнала для их в журнал

logger.setLevel(logging.DEBUG)

Примечание. Уровень logger по умолчанию - WARN

...