From 31dfbb46686838e515d43188369c83cd3c397648 Mon Sep 17 00:00:00 2001 From: Thomas Hisch Date: Fri, 24 May 2019 04:32:22 +0200 Subject: [PATCH] logging: Simple impl of multline pretty printing --- src/_pytest/logging.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/_pytest/logging.py b/src/_pytest/logging.py index 660912c91..29524e7fb 100644 --- a/src/_pytest/logging.py +++ b/src/_pytest/logging.py @@ -41,6 +41,21 @@ class ColoredLevelFormatter(logging.Formatter): if six.PY2: self._original_fmt = self._fmt else: + + class PercentStyleMultiline(logging.PercentStyle): + def format(self, record): + if "\n" in record.message: + fmt = self._fmt + dct = record.__dict__ + data_seq = [ + fmt % {**dct, "message": line} + for line in record.message.splitlines() + ] + return "\n".join(data_seq) + else: + return self._fmt % record.__dict__ + + self._style = PercentStyleMultiline(self._style._fmt) self._original_fmt = self._style._fmt self._level_to_fmt_mapping = {}