Coverage for stlog/handler.py: 69%
16 statements
« prev ^ index » next coverage.py v7.2.7, created at 2024-08-21 07:31 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2024-08-21 07:31 +0000
1from __future__ import annotations
3import logging
5from stlog.base import (
6 StlogError,
7 rich_dump_exception_on_console,
8)
11class CustomRichHandler(logging.Handler):
12 def __init__(self, console, level: int = logging.NOTSET, **kwargs):
13 self.console = console
14 super().__init__(level=level)
16 def emit(self, record: logging.LogRecord):
17 if self.formatter is None:
18 raise StlogError("no formatted set")
19 self.console.print(self.formatter.format(record))
20 if record.exc_info:
21 exc_type, exc_value, exc_traceback = record.exc_info
22 assert exc_type is not None
23 assert exc_value is not None
24 rich_dump_exception_on_console(
25 self.console, exc_type, exc_value, exc_traceback
26 )