Last commit not found
""" | |
Common logging module for axolotl | |
""" | |
import os | |
import sys | |
from logging import Formatter | |
from logging.config import dictConfig | |
from typing import Any, Dict | |
from colorama import Fore, Style, init | |
class ColorfulFormatter(Formatter): | |
""" | |
Formatter to add coloring to log messages by log type | |
""" | |
COLORS = { | |
"WARNING": Fore.YELLOW, | |
"ERROR": Fore.RED, | |
"CRITICAL": Fore.RED + Style.BRIGHT, | |
} | |
def format(self, record): | |
record.rank = int(os.getenv("LOCAL_RANK", "0")) | |
log_message = super().format(record) | |
return self.COLORS.get(record.levelname, "") + log_message + Fore.RESET | |
DEFAULT_LOGGING_CONFIG: Dict[str, Any] = { | |
"version": 1, | |
"formatters": { | |
"simple": { | |
"format": "[%(asctime)s] [%(levelname)s] [%(name)s.%(funcName)s:%(lineno)d] [PID:%(process)d] %(message)s", | |
}, | |
"colorful": { | |
"()": ColorfulFormatter, | |
"format": "[%(asctime)s] [%(levelname)s] [%(name)s.%(funcName)s:%(lineno)d] [PID:%(process)d] [RANK:%(rank)d] %(message)s", | |
}, | |
}, | |
"filters": {}, | |
"handlers": { | |
"console": { | |
"class": "logging.StreamHandler", | |
"formatter": "simple", | |
"filters": [], | |
"stream": sys.stdout, | |
}, | |
"color_console": { | |
"class": "logging.StreamHandler", | |
"formatter": "colorful", | |
"filters": [], | |
"stream": sys.stdout, | |
}, | |
}, | |
"root": {"handlers": ["console"], "level": os.getenv("LOG_LEVEL", "INFO")}, | |
"loggers": { | |
"axolotl": { | |
"handlers": ["color_console"], | |
"level": "DEBUG", | |
"propagate": False, | |
}, | |
}, | |
} | |
def configure_logging(): | |
"""Configure with default logging""" | |
init() # Initialize colorama | |
dictConfig(DEFAULT_LOGGING_CONFIG) | |