You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
879 B

import logging
import colorlog
__all__ = ["get_logger"]
def get_logger(name: str = "trainer") -> logging.Logger:
"""
Creates and configures a logger with colored level names.
INFO is light blue, DEBUG is green. Message text remains white.
"""
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
if not logger.handlers:
handler = colorlog.StreamHandler()
formatter = colorlog.ColoredFormatter(
fmt="%(log_color)s[%(levelname)s]%(reset)s %(message)s",
log_colors={
"DEBUG": "green",
"INFO": "light_blue",
"WARNING": "yellow",
"ERROR": "red",
"CRITICAL": "bold_red",
},
style="%"
)
handler.setFormatter(formatter)
logger.addHandler(handler)
return logger