Spaces:
Sleeping
Sleeping
import logging | |
import colorlog | |
import sys | |
import os | |
from dotenv import load_dotenv | |
# 确保环境变量被加载 | |
load_dotenv() | |
def get_log_level() -> int: | |
"""从环境变量获取日志级别 | |
Returns: | |
int: logging 模块定义的日志级别 | |
""" | |
level_map = { | |
'DEBUG': logging.DEBUG, | |
'INFO': logging.INFO, | |
'WARNING': logging.WARNING, | |
'ERROR': logging.ERROR, | |
'CRITICAL': logging.CRITICAL | |
} | |
level = os.getenv('LOG_LEVEL', 'INFO').upper() | |
return level_map.get(level, logging.INFO) | |
def setup_logger(name: str = "DeepClaude") -> logging.Logger: | |
"""设置一个彩色的logger | |
Args: | |
name (str, optional): logger的名称. Defaults to "DeepClaude". | |
Returns: | |
logging.Logger: 配置好的logger实例 | |
""" | |
logger = colorlog.getLogger(name) | |
if logger.handlers: | |
return logger | |
# 从环境变量获取日志级别 | |
log_level = get_log_level() | |
# 设置日志级别 | |
logger.setLevel(log_level) | |
# 创建控制台处理器 | |
console_handler = logging.StreamHandler(sys.stdout) | |
console_handler.setLevel(log_level) | |
# 设置彩色日志格式 | |
formatter = colorlog.ColoredFormatter( | |
"%(log_color)s%(asctime)s - %(name)s - %(levelname)s - %(message)s", | |
datefmt="%Y-%m-%d %H:%M:%S", | |
log_colors={ | |
'DEBUG': 'cyan', | |
'INFO': 'green', | |
'WARNING': 'yellow', | |
'ERROR': 'red', | |
'CRITICAL': 'red,bg_white', | |
} | |
) | |
console_handler.setFormatter(formatter) | |
logger.addHandler(console_handler) | |
return logger | |
# 创建一个默认的logger实例 | |
logger = setup_logger() | |