Как регистрировать только логи StreamHandler? - PullRequest
0 голосов
/ 17 октября 2019

Мне нужны только журналы, созданные StreamHandler, но по какой-то причине все регистрируется дважды. Форматирование корневого регистратора, похоже, тоже не работает.

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

Вот последняя вещь, которую я пробовал:

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
logger.addHandler(stream_handler)

logger.info('Modeling for date %s, saving outputs %s', date_string, save_loc_str)

Вывод:

2019-10-17 14:20:47,547 - __main__ - INFO - Modeling for date 2019-10-17, saving outputs to S3
INFO:__main__:Modeling for date 2019-10-17, saving outputs to S3

Я также пытался просто изменить формат в basicConfig, но формат не обновляется:

logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

logger.info('Modeling for date %s, saving outputs %s', date_string, save_loc_str)

Вывод:

INFO:__main__:Modeling for date 2019-10-17, saving outputs to S3

Просто

logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)

logging.info('Modeling for date %s, saving outputs %s', date_string, save_loc_str)

Не будет работать и выдает тот же результат, что и предыдущий: /

...