Files
payphone/payphone/core/logging.py
T

46 lines
1.3 KiB
Python

import logging
from rich import logging as rlogging
logger = logging.getLogger("payphone")
def _get_handler(process_name: str, module: str | None = None) -> None:
"""Generates a handler for the given process name and module.
Args:
process_name (str): The process name.
module (str | None, optional): The module inside the process. Defaults to None.
"""
fmt = f"[blue][{process_name}{f": [green]{module}[/green]" if module is not None else ""}][/blue] %(message)s"
formatter = logging.Formatter(fmt)
handler = rlogging.RichHandler(
level=logging.INFO, markup=True, rich_tracebacks=True
)
handler.setFormatter(formatter)
return handler
def setup(process_name: str):
"""Sets up pycord logging.
Args:
process_name (str): The name of the process.
"""
logging.basicConfig(level=logging.DEBUG, handlers=[_get_handler(process_name)])
discord_logger = logging.getLogger("discord")
discord_logger.handlers.clear()
discord_logger.addHandler(_get_handler(process_name, "discord"))
discord_logger.propagate = False
asyncio_logger = logging.getLogger("asyncio")
asyncio_logger.handlers.clear()
asyncio_logger.addHandler(_get_handler(process_name, "asyncio"))
asyncio_logger.propagate = False