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
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
|