Skip to content

Logger config

ColoredFormatter

Bases: Formatter

Custom log formatter that colorizes the entire log message.

Source code in light_agents/logger_config.py
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class ColoredFormatter(logging.Formatter):
    """Custom log formatter that colorizes the entire log message."""

    def format(self, record: logging.LogRecord) -> str:
        """Format the log record."""
        colors: Dict[str, Color] = {
            "DEBUG": "cyan",
            "INFO": "green",
            "WARNING": "yellow",
            "ERROR": "red",
            "CRITICAL": "magenta",
        }

        levelname = record.levelname
        if levelname in colors:
            color = colors[levelname]
            message = super(ColoredFormatter, self).format(record)
            colored_message = colored(message, color)
            return colored_message

        return super(ColoredFormatter, self).format(record)

format(record)

Format the log record.

Source code in light_agents/logger_config.py
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
def format(self, record: logging.LogRecord) -> str:
    """Format the log record."""
    colors: Dict[str, Color] = {
        "DEBUG": "cyan",
        "INFO": "green",
        "WARNING": "yellow",
        "ERROR": "red",
        "CRITICAL": "magenta",
    }

    levelname = record.levelname
    if levelname in colors:
        color = colors[levelname]
        message = super(ColoredFormatter, self).format(record)
        colored_message = colored(message, color)
        return colored_message

    return super(ColoredFormatter, self).format(record)

setup_logger(name=None, **kwargs)

Set up the logger.

Source code in light_agents/logger_config.py
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
def setup_logger(name: Optional[str] = None, **kwargs: Any) -> logging.Logger:
    """Set up the logger."""
    log_level = kwargs.get("log_level", logging.DEBUG)

    logger = logging.getLogger(name)
    logger.setLevel(log_level)

    if not logger.handlers:
        console_handler = logging.StreamHandler()
        console_handler.setLevel(logging.DEBUG)

        formatter = ColoredFormatter(
            "%(asctime)s [%(levelname)s] %(name)s:\n%(message)s",
            datefmt="%Y-%m-%d %H:%M:%S",
        )

        # Adicionar o formatter ao handler
        console_handler.setFormatter(formatter)

        # Adicionar o handler ao logger
        logger.addHandler(console_handler)

        # Opcional: Propagar o log para loggers de nĂ­vel superior
        logger.propagate = False

    return logger