Source code for betty.logging
"""
Provide logging utilities.
"""
import sys
from logging import (
CRITICAL,
ERROR,
WARNING,
INFO,
DEBUG,
NOTSET,
StreamHandler,
LogRecord,
)
from typing_extensions import override
[docs]
class CliHandler(
StreamHandler, # type: ignore[type-arg]
):
"""
A logging handler for Betty's Command Line Interface.
"""
COLOR_LEVELS = {
CRITICAL: 91,
ERROR: 91,
WARNING: 93,
INFO: 92,
DEBUG: 97,
NOTSET: 97,
}
[docs]
def __init__(self):
StreamHandler.__init__(self, sys.stderr)
def _color(self, s: str, color: int) -> str:
return "\033[%dm%s\033[0m" % (color, s)