Spaces:
Paused
Paused
| 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() | |