Spaces:
Sleeping
Sleeping
# coding: utf-8 | |
# Copyright (c) 2025 inclusionAI. | |
import logging | |
LOG_FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' | |
logging.basicConfig(level=logging.INFO, format=LOG_FORMAT) | |
# common logger info | |
logger = logging.getLogger("common") | |
# for trace info | |
trace_logger = logging.getLogger("traced") | |
class Color: | |
black = '\033[30m' | |
red = '\033[31m' | |
green = '\033[32m' | |
orange = '\033[33m' | |
blue = '\033[34m' | |
purple = '\033[35m' | |
cyan = '\033[36m' | |
lightgrey = '\033[37m' | |
darkgrey = '\033[90m' | |
lightred = '\033[91m' | |
lightgreen = '\033[92m' | |
yellow = '\033[93m' | |
lightblue = '\033[94m' | |
pink = '\033[95m' | |
lightcyan = '\033[96m' | |
reset = '\033[0m' | |
bold = '\033[01m' | |
disable = '\033[02m' | |
underline = '\033[04m' | |
reverse = '\033[07m' | |
strikethrough = '\033[09m' | |
def color_log(value, color: str = Color.black, logger_: logging.Logger = logger, level: int = logging.INFO, hightlight_key=None): | |
""" Colored value or highlight key in log. | |
Args: | |
value: | |
color: Color | |
hightlight_key: Color segment key. | |
""" | |
if hightlight_key is None: | |
logger_.log(level, f"{color} {value} {Color.reset}") | |
else: | |
logger_.log(level, f"{color} {hightlight_key}: {Color.reset} {value}") | |
def aworld_log(logger, color: str = Color.black, level: int = logging.INFO): | |
"""Colored log style in the Aworld. | |
Args: | |
color: Default color set, different types of information can be set in different colors. | |
level: Log level. | |
""" | |
def_color = color | |
def decorator(value, color: str = None): | |
# Set color in the called. | |
if color: | |
color_log(value, color, logger, level) | |
else: | |
color_log(value, def_color, logger, level) | |
return decorator | |
def init_logger(logger: logging.Logger): | |
logger.debug = aworld_log(logger, color=Color.lightgrey, level=logging.DEBUG) | |
logger.info = aworld_log(logger, color=Color.black, level=logging.INFO) | |
logger.warning = aworld_log(logger, color=Color.orange, level=logging.WARNING) | |
logger.warn = logger.warning | |
logger.error = aworld_log(logger, color=Color.red, level=logging.ERROR) | |
logger.fatal = logger.error | |
init_logger(logger) | |
init_logger(trace_logger) | |