class Stream2Logger(object): def __init__(self, stream, logger, level): self._stream = stream self._logger = logger self._level = level self._buffer = [] def write(self, message): self._buffer.append(message) if "\n" in message: self.flush() def flush(self): if self._buffer: message = "".join(self._buffer) if "\n" in message: self._logger.log(self._level, message.rstrip()) self._buffer = [] else: self._buffer = [message]