У меня есть функция для настройки регистратора.
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.
Спасибо.