logger: дублирование сообщений

Почему после перенаправления всего стандартного вывода в лог файл каждое сообщение в файле выводится по три раза? Это происходит на ВМ но не воспроизводится на моем ПК.

# Создание объекта логгера
logger = logging.getLogger('log')
logger.setLevel(logging.DEBUG)

# Создание обработчика для записи в файл с ограничением в 10Мб
file_handler = RotatingFileHandler(log_path, maxBytes=10*1024*1024, backupCount=1)
file_handler.setLevel(logging.DEBUG)

# Создание форматирования для сообщений в логе
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')

# Применение форматирования к обработчику
file_handler.setFormatter(formatter)

# Добавление обработчика к логгеру
logger.addHandler(file_handler)

# Перенаправление стандартного вывода в логгер
class StreamToLogger:
    def __init__(self, logger, log_level=logging.INFO):
        self.logger = logger
        self.log_level = log_level
        self.linebuf = ''

    def write(self, buf):
        for line in buf.rstrip().splitlines():
            self.logger.log(self.log_level, line.rstrip())

    def flush(self):
        pass


# Создание экземпляра класса StreamToLogger и перенаправление вывода
sys.stdout = StreamToLogger(logger, logging.INFO)
sys.stderr = StreamToLogger(logger, logging.ERROR)

Ответы (0 шт):