File size: 768 Bytes
b380004
66760eb
b380004
 
 
66760eb
 
b380004
66760eb
 
b380004
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""A module handles the configuration of logging for the application."""

from logging import WARNING, Formatter, Logger, getLogger

from rich.console import Console
from rich.logging import RichHandler

from chattr.app.settings import LoggerSettings

getLogger("httpx").setLevel(WARNING)


def setup_logger(log: LoggerSettings) -> Logger:
    """Initialize the logger for the application."""
    logger: Logger = getLogger(log.name)
    console: Console = Console()
    handler: RichHandler = RichHandler(level=log.level.value, console=console, rich_tracebacks=True)
    formatter: Formatter = Formatter(log.format)
    handler.setFormatter(formatter)
    logger.addHandler(handler)
    logger.setLevel(log.level.value)
    logger.propagate = False
    return logger