Как предотвратить запись логгером в stderr? - PullRequest
0 голосов
/ 17 июня 2019

У меня есть функция для настройки регистратора.


def setup_logger(logger_name, log_file=None, stream=None, level=logging.DEBUG):
    '''
    Setup a Logger
    '''
    logger = logging.getLogger(logger_name)
    logger.handlers = []

    formatter = logging.Formatter('[%(asctime)s] %(levelname)s: %(message)s',
                                  datefmt='%Y-%m-%d %H:%M:%S')

    if log_file:
        fileHandler = logging.FileHandler(log_file, mode='w')
        fileHandler.setFormatter(formatter)
        fileHandler.setLevel(level)
        logger.addHandler(fileHandler)

    if stream:
        streamHandler = logging.StreamHandler()
        streamHandler.setFormatter(formatter)
        streamHandler.setLevel(level)
        logger.addHandler(streamHandler)

    return logger

Используя выше, скажем, я определяю регистратор с помощью следующих команд:

my_logger = setup_logger('my_logger', '/tmp/my_logger.log')
my_logger.info('This should not appear on stderr')

Затемвывод должен идти только в файл журнала, а не в stdout или stderr.Тем не менее, я всегда получаю вывод и на stderr, который путается с progressbar, который я намерен использовать для отслеживания хода выполнения другой задачи.Любая идея, как я мог заставить его не записывать вывод в stderr?

Я использую Python 3.7.3.

Спасибо.

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