Skip to content

Commit 31dfbb4

Browse files
committed
logging: Simple impl of multline pretty printing
1 parent fa8a658 commit 31dfbb4

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/_pytest/logging.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,21 @@ def __init__(self, terminalwriter, *args, **kwargs):
4141
if six.PY2:
4242
self._original_fmt = self._fmt
4343
else:
44+
45+
class PercentStyleMultiline(logging.PercentStyle):
46+
def format(self, record):
47+
if "\n" in record.message:
48+
fmt = self._fmt
49+
dct = record.__dict__
50+
data_seq = [
51+
fmt % {**dct, "message": line}
52+
for line in record.message.splitlines()
53+
]
54+
return "\n".join(data_seq)
55+
else:
56+
return self._fmt % record.__dict__
57+
58+
self._style = PercentStyleMultiline(self._style._fmt)
4459
self._original_fmt = self._style._fmt
4560
self._level_to_fmt_mapping = {}
4661

0 commit comments

Comments
 (0)