Duibonduil's picture
Upload 3 files
31e8fad verified
# 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)