logging: Simple impl of multline pretty printing

This commit is contained in:
Thomas Hisch 2019-05-24 04:32:22 +02:00
parent fa8a658458
commit 31dfbb4668
1 changed files with 15 additions and 0 deletions

View File

@ -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 = {}