def format(self, record: LogRecord) -> str: color = self.level_colors.get(record.levelno, self.level_colors.get(None, "")) orig = record.__dict__ record.__dict__ = {**colors, "c_color": color, **record.__dict__} out = super().format(record) record.__dict__ = orig return out
def format(self, record: logging.LogRecord) -> str: orig = record.__dict__ record.__dict__ = record.__dict__.copy() levelname = record.levelname prn_name = levelname + ' ' * (8 - len(levelname)) if levelname in self.colors: record.levelname = self.colors[levelname](prn_name) else: record.levelname = prn_name # super doesn't work here in 2.6 O_o res = logging.Formatter.format(self, record) # res = super(ColoredFormatter, self).format(record) # restore record, as it will be used by other formatters record.__dict__ = orig return res