优化代码格式和异常处理
- 修复异常处理链,使用from语法保留原始异常 - 格式化代码以符合项目规范 - 优化导入模块的顺序 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1 +1 @@
|
||||
# 这个文件可以为空,但必须存在
|
||||
# 这个文件可以为空,但必须存在
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import os
|
||||
from typing import cast
|
||||
from pymongo import MongoClient
|
||||
from pymongo.database import Database
|
||||
|
||||
@@ -11,7 +10,7 @@ def __create_database_instance():
|
||||
uri = os.getenv("MONGODB_URI")
|
||||
host = os.getenv("MONGODB_HOST", "127.0.0.1")
|
||||
port = int(os.getenv("MONGODB_PORT", "27017"))
|
||||
db_name = os.getenv("DATABASE_NAME", "MegBot")
|
||||
# db_name 变量在创建连接时不需要,在获取数据库实例时才使用
|
||||
username = os.getenv("MONGODB_USERNAME")
|
||||
password = os.getenv("MONGODB_PASSWORD")
|
||||
auth_source = os.getenv("MONGODB_AUTH_SOURCE")
|
||||
|
||||
@@ -8,7 +8,7 @@ from dotenv import load_dotenv
|
||||
# from ..plugins.chat.config import global_config
|
||||
|
||||
# 加载 .env.prod 文件
|
||||
env_path = Path(__file__).resolve().parent.parent.parent / '.env.prod'
|
||||
env_path = Path(__file__).resolve().parent.parent.parent / ".env.prod"
|
||||
load_dotenv(dotenv_path=env_path)
|
||||
|
||||
# 保存原生处理器ID
|
||||
@@ -39,7 +39,6 @@ if ENABLE_ADVANCE_OUTPUT:
|
||||
# 日志级别配置
|
||||
"console_level": "INFO",
|
||||
"file_level": "DEBUG",
|
||||
|
||||
# 格式配置
|
||||
"console_format": (
|
||||
"<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
|
||||
@@ -47,12 +46,7 @@ if ENABLE_ADVANCE_OUTPUT:
|
||||
"<cyan>{extra[module]: <12}</cyan> | "
|
||||
"<level>{message}</level>"
|
||||
),
|
||||
"file_format": (
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{extra[module]: <15} | "
|
||||
"{message}"
|
||||
),
|
||||
"file_format": ("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | {message}"),
|
||||
"log_dir": LOG_ROOT,
|
||||
"rotation": "00:00",
|
||||
"retention": "3 days",
|
||||
@@ -61,21 +55,11 @@ if ENABLE_ADVANCE_OUTPUT:
|
||||
else:
|
||||
DEFAULT_CONFIG = {
|
||||
# 日志级别配置
|
||||
"console_level": "INFO",
|
||||
"console_level": "INFO",
|
||||
"file_level": "DEBUG",
|
||||
|
||||
# 格式配置
|
||||
"console_format": (
|
||||
"<green>{time:MM-DD HH:mm}</green> | "
|
||||
"<cyan>{extra[module]}</cyan> | "
|
||||
"{message}"
|
||||
),
|
||||
"file_format": (
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{extra[module]: <15} | "
|
||||
"{message}"
|
||||
),
|
||||
"console_format": ("<green>{time:MM-DD HH:mm}</green> | <cyan>{extra[module]}</cyan> | {message}"),
|
||||
"file_format": ("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | {message}"),
|
||||
"log_dir": LOG_ROOT,
|
||||
"rotation": "00:00",
|
||||
"retention": "3 days",
|
||||
@@ -93,28 +77,12 @@ MEMORY_STYLE_CONFIG = {
|
||||
"<light-yellow>海马体</light-yellow> | "
|
||||
"<level>{message}</level>"
|
||||
),
|
||||
"file_format": (
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{extra[module]: <15} | "
|
||||
"海马体 | "
|
||||
"{message}"
|
||||
)
|
||||
"file_format": ("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 海马体 | {message}"),
|
||||
},
|
||||
"simple": {
|
||||
"console_format": (
|
||||
"<green>{time:MM-DD HH:mm}</green> | "
|
||||
"<light-yellow>海马体</light-yellow> | "
|
||||
"{message}"
|
||||
),
|
||||
"file_format": (
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{extra[module]: <15} | "
|
||||
"海马体 | "
|
||||
"{message}"
|
||||
)
|
||||
}
|
||||
"console_format": ("<green>{time:MM-DD HH:mm}</green> | <light-yellow>海马体</light-yellow> | {message}"),
|
||||
"file_format": ("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 海马体 | {message}"),
|
||||
},
|
||||
}
|
||||
|
||||
# 海马体日志样式配置
|
||||
@@ -127,28 +95,12 @@ SENDER_STYLE_CONFIG = {
|
||||
"<light-yellow>消息发送</light-yellow> | "
|
||||
"<level>{message}</level>"
|
||||
),
|
||||
"file_format": (
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{extra[module]: <15} | "
|
||||
"消息发送 | "
|
||||
"{message}"
|
||||
)
|
||||
"file_format": ("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 消息发送 | {message}"),
|
||||
},
|
||||
"simple": {
|
||||
"console_format": (
|
||||
"<green>{time:MM-DD HH:mm}</green> | "
|
||||
"<green>消息发送</green> | "
|
||||
"{message}"
|
||||
),
|
||||
"file_format": (
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{extra[module]: <15} | "
|
||||
"消息发送 | "
|
||||
"{message}"
|
||||
)
|
||||
}
|
||||
"console_format": ("<green>{time:MM-DD HH:mm}</green> | <green>消息发送</green> | {message}"),
|
||||
"file_format": ("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 消息发送 | {message}"),
|
||||
},
|
||||
}
|
||||
|
||||
LLM_STYLE_CONFIG = {
|
||||
@@ -160,30 +112,14 @@ LLM_STYLE_CONFIG = {
|
||||
"<light-yellow>麦麦组织语言</light-yellow> | "
|
||||
"<level>{message}</level>"
|
||||
),
|
||||
"file_format": (
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{extra[module]: <15} | "
|
||||
"麦麦组织语言 | "
|
||||
"{message}"
|
||||
)
|
||||
"file_format": ("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 麦麦组织语言 | {message}"),
|
||||
},
|
||||
"simple": {
|
||||
"console_format": (
|
||||
"<green>{time:MM-DD HH:mm}</green> | "
|
||||
"<light-green>麦麦组织语言</light-green> | "
|
||||
"{message}"
|
||||
),
|
||||
"file_format": (
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{extra[module]: <15} | "
|
||||
"麦麦组织语言 | "
|
||||
"{message}"
|
||||
)
|
||||
}
|
||||
"console_format": ("<green>{time:MM-DD HH:mm}</green> | <light-green>麦麦组织语言</light-green> | {message}"),
|
||||
"file_format": ("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 麦麦组织语言 | {message}"),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Topic日志样式配置
|
||||
TOPIC_STYLE_CONFIG = {
|
||||
@@ -195,28 +131,12 @@ TOPIC_STYLE_CONFIG = {
|
||||
"<light-blue>话题</light-blue> | "
|
||||
"<level>{message}</level>"
|
||||
),
|
||||
"file_format": (
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{extra[module]: <15} | "
|
||||
"话题 | "
|
||||
"{message}"
|
||||
)
|
||||
"file_format": ("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 话题 | {message}"),
|
||||
},
|
||||
"simple": {
|
||||
"console_format": (
|
||||
"<green>{time:MM-DD HH:mm}</green> | "
|
||||
"<light-blue>主题</light-blue> | "
|
||||
"{message}"
|
||||
),
|
||||
"file_format": (
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{extra[module]: <15} | "
|
||||
"话题 | "
|
||||
"{message}"
|
||||
)
|
||||
}
|
||||
"console_format": ("<green>{time:MM-DD HH:mm}</green> | <light-blue>主题</light-blue> | {message}"),
|
||||
"file_format": ("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 话题 | {message}"),
|
||||
},
|
||||
}
|
||||
|
||||
# Topic日志样式配置
|
||||
@@ -229,28 +149,12 @@ CHAT_STYLE_CONFIG = {
|
||||
"<light-blue>见闻</light-blue> | "
|
||||
"<level>{message}</level>"
|
||||
),
|
||||
"file_format": (
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{extra[module]: <15} | "
|
||||
"见闻 | "
|
||||
"{message}"
|
||||
)
|
||||
"file_format": ("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 见闻 | {message}"),
|
||||
},
|
||||
"simple": {
|
||||
"console_format": (
|
||||
"<green>{time:MM-DD HH:mm}</green> | "
|
||||
"<light-blue>见闻</light-blue> | "
|
||||
"{message}"
|
||||
),
|
||||
"file_format": (
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{extra[module]: <15} | "
|
||||
"见闻 | "
|
||||
"{message}"
|
||||
)
|
||||
}
|
||||
"console_format": ("<green>{time:MM-DD HH:mm}</green> | <light-blue>见闻</light-blue> | {message}"),
|
||||
"file_format": ("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 见闻 | {message}"),
|
||||
},
|
||||
}
|
||||
|
||||
# 根据ENABLE_ADVANCE_OUTPUT选择配置
|
||||
@@ -265,10 +169,12 @@ def is_registered_module(record: dict) -> bool:
|
||||
"""检查是否为已注册的模块"""
|
||||
return record["extra"].get("module") in _handler_registry
|
||||
|
||||
|
||||
def is_unregistered_module(record: dict) -> bool:
|
||||
"""检查是否为未注册的模块"""
|
||||
return not is_registered_module(record)
|
||||
|
||||
|
||||
def log_patcher(record: dict) -> None:
|
||||
"""自动填充未设置模块名的日志记录,保留原生模块名称"""
|
||||
if "module" not in record["extra"]:
|
||||
@@ -278,9 +184,11 @@ def log_patcher(record: dict) -> None:
|
||||
module_name = "root"
|
||||
record["extra"]["module"] = module_name
|
||||
|
||||
|
||||
# 应用全局修补器
|
||||
logger.configure(patcher=log_patcher)
|
||||
|
||||
|
||||
class LogConfig:
|
||||
"""日志配置类"""
|
||||
|
||||
@@ -296,12 +204,12 @@ class LogConfig:
|
||||
|
||||
|
||||
def get_module_logger(
|
||||
module: Union[str, ModuleType],
|
||||
*,
|
||||
console_level: Optional[str] = None,
|
||||
file_level: Optional[str] = None,
|
||||
extra_handlers: Optional[List[dict]] = None,
|
||||
config: Optional[LogConfig] = None
|
||||
module: Union[str, ModuleType],
|
||||
*,
|
||||
console_level: Optional[str] = None,
|
||||
file_level: Optional[str] = None,
|
||||
extra_handlers: Optional[List[dict]] = None,
|
||||
config: Optional[LogConfig] = None,
|
||||
) -> LoguruLogger:
|
||||
module_name = module if isinstance(module, str) else module.__name__
|
||||
current_config = config.config if config else DEFAULT_CONFIG
|
||||
@@ -327,7 +235,7 @@ def get_module_logger(
|
||||
# 文件处理器
|
||||
log_dir = Path(current_config["log_dir"])
|
||||
log_dir.mkdir(parents=True, exist_ok=True)
|
||||
log_file = log_dir / module_name / f"{{time:YYYY-MM-DD}}.log"
|
||||
log_file = log_dir / module_name / "{time:YYYY-MM-DD}.log"
|
||||
log_file.parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
file_id = logger.add(
|
||||
@@ -385,14 +293,9 @@ other_log_dir = log_dir / "other"
|
||||
other_log_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
DEFAULT_FILE_HANDLER = logger.add(
|
||||
sink=str(other_log_dir / f"{{time:YYYY-MM-DD}}.log"),
|
||||
sink=str(other_log_dir / "{time:YYYY-MM-DD}.log"),
|
||||
level=os.getenv("DEFAULT_FILE_LOG_LEVEL", "DEBUG"),
|
||||
format=(
|
||||
"{time:YYYY-MM-DD HH:mm:ss} | "
|
||||
"{level: <8} | "
|
||||
"{name: <15} | "
|
||||
"{message}"
|
||||
),
|
||||
format=("{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name: <15} | {message}"),
|
||||
rotation=DEFAULT_CONFIG["rotation"],
|
||||
retention=DEFAULT_CONFIG["retention"],
|
||||
compression=DEFAULT_CONFIG["compression"],
|
||||
|
||||
Reference in New Issue
Block a user