Rich printer
Rich Printer.
Classes⚓︎
Functions⚓︎
rich_printer ⚓︎
rich_printer(message, *, is_header, _this_level, _is_text, _console, _styles, _keys_on_own_line=None, **kwargs)
Print log message with rich formatting.
Source code in corallium/loggers/rich_printer.py
def rich_printer(
message: str,
*,
is_header: bool,
_this_level: int,
_is_text: bool,
# Logger-specific parameters that need to be initialized with partial(...)
_console: Console,
_styles: Styles,
_keys_on_own_line: list[str] | None = None,
**kwargs: Any,
) -> None:
"""Print log message with rich formatting."""
text = Text()
if _is_text:
if is_header:
print() # noqa: T201
text.append(f'{message}', style=_styles.message)
else:
timestamp = kwargs.pop('timestamp', datetime.now()) # noqa: DTZ005
text.append(f'{timestamp: <28} ', style=_styles.timestamp)
text.append('[', style=_styles.timestamp)
level_style = _styles.get_style(level=_this_level)
text.append(f'{get_name(level=_this_level): <7}', style=level_style)
text.append(']', style=_styles.timestamp)
text.append(f' {message}', style=_styles.message)
full_lines = []
for key in _keys_on_own_line or []:
if line := kwargs.pop(key, None):
full_lines.append((key, line)) # noqa: PERF401
for key, value in kwargs.items():
text.append(f' {key}=', style=_styles.key)
text.append(f'{value!s}', style=_styles.value)
_console.print(text)
for key, line in full_lines:
new_text = Text()
new_text.append(f' ∟ {key}', style=_styles.key)
new_text.append(f': {line}', style=_styles.value_own_line)
_console.print(new_text)
if _this_level == logging.CRITICAL:
term_width, _height = shutil.get_terminal_size((100, 50))
_console.print_exception(
extra_lines=1,
max_frames=6,
show_locals=False,
width=term_width,
)