diff --git a/src/common/logger.py b/src/common/logger.py index b7993f7a8..0b434d084 100644 --- a/src/common/logger.py +++ b/src/common/logger.py @@ -1,7 +1,26 @@ +import logging from typing import Callable, Optional import structlog +# TODO: customize the logger configuration as needed +# TODO: compress the log output +# TODO: output to a file with JSON format +structlog.configure( + processors=[ + structlog.contextvars.merge_contextvars, + structlog.processors.add_log_level, + structlog.processors.StackInfoRenderer(), + structlog.dev.set_exc_info, + structlog.processors.TimeStamper(fmt="%Y-%m-%d %H:%M:%S", utc=False), + structlog.dev.ConsoleRenderer(), + ], + wrapper_class=structlog.make_filtering_bound_logger(logging.NOTSET), + context_class=dict, + logger_factory=structlog.PrintLoggerFactory(), + cache_logger_on_first_use=False, +) + raw_logger = structlog.get_logger() binds: dict[str, Callable] = {} @@ -12,5 +31,5 @@ def get_logger(name: Optional[str]): return raw_logger logger = binds.get(name) if logger is None: - binds[name] = logger = structlog.get_logger(name).bind(name=name) + binds[name] = logger = structlog.get_logger(name).bind(logger_name=name) return logger diff --git a/src/common/message/api.py b/src/common/message/api.py index 8863a9796..59ba9d1e2 100644 --- a/src/common/message/api.py +++ b/src/common/message/api.py @@ -7,6 +7,7 @@ from src.config.config import global_config global_api = None + def get_global_api() -> MessageServer: """获取全局MessageServer实例""" global global_api diff --git a/src/common/server.py b/src/common/server.py index efb217bde..87760b89e 100644 --- a/src/common/server.py +++ b/src/common/server.py @@ -92,6 +92,7 @@ class Server: global_server = None + def get_global_server() -> Server: """获取全局服务器实例""" global global_server diff --git a/src/llm_models/utils_model.py b/src/llm_models/utils_model.py index 7884f4bc7..7656e25e4 100644 --- a/src/llm_models/utils_model.py +++ b/src/llm_models/utils_model.py @@ -1,7 +1,6 @@ import asyncio import json import re -import sys from datetime import datetime from typing import Tuple, Union, Dict, Any import aiohttp @@ -116,8 +115,10 @@ class LLMRequest: logger.error(f"原始 model dict 信息:{model}") logger.error(f"配置错误:找不到对应的配置项 - {str(e)}") raise ValueError(f"配置错误:找不到对应的配置项 - {str(e)}") from e - except KeyError as e: - logger.warn(f"找不到{model['provider']}_KEY或{model['provider']}_BASE_URL环境变量,请检查配置文件或环境变量设置。") + except KeyError: + logger.warn( + f"找不到{model['provider']}_KEY或{model['provider']}_BASE_URL环境变量,请检查配置文件或环境变量设置。" + ) self.model_name: str = model["name"] self.params = kwargs