优雅的新logger!
This commit is contained in:
11
bot.py
11
bot.py
@@ -10,9 +10,8 @@ import uvicorn
|
|||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from nonebot.adapters.onebot.v11 import Adapter
|
from nonebot.adapters.onebot.v11 import Adapter
|
||||||
import platform
|
import platform
|
||||||
from src.plugins.utils.logger_config import setup_logger
|
from src.plugins.utils.logger_config import LogModule, LogClassification
|
||||||
|
|
||||||
from loguru import logger
|
|
||||||
|
|
||||||
# 配置日志格式
|
# 配置日志格式
|
||||||
|
|
||||||
@@ -102,7 +101,9 @@ def load_env():
|
|||||||
|
|
||||||
|
|
||||||
def load_logger():
|
def load_logger():
|
||||||
setup_logger()
|
global logger # 使得bot.py中其他函数也能调用
|
||||||
|
log_module = LogModule()
|
||||||
|
logger = log_module.setup_logger(LogClassification.BASE)
|
||||||
|
|
||||||
|
|
||||||
def scan_provider(env_config: dict):
|
def scan_provider(env_config: dict):
|
||||||
@@ -174,8 +175,6 @@ def raw_main():
|
|||||||
if platform.system().lower() != "windows":
|
if platform.system().lower() != "windows":
|
||||||
time.tzset()
|
time.tzset()
|
||||||
|
|
||||||
# 配置日志
|
|
||||||
load_logger()
|
|
||||||
easter_egg()
|
easter_egg()
|
||||||
init_config()
|
init_config()
|
||||||
init_env()
|
init_env()
|
||||||
@@ -207,6 +206,8 @@ def raw_main():
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
try:
|
try:
|
||||||
|
# 配置日志,使得主程序直接退出时候也能访问logger
|
||||||
|
load_logger()
|
||||||
raw_main()
|
raw_main()
|
||||||
|
|
||||||
app = nonebot.get_asgi()
|
app = nonebot.get_asgi()
|
||||||
|
|||||||
@@ -32,10 +32,11 @@ from .utils_image import image_path_to_base64
|
|||||||
from .utils_user import get_user_nickname, get_user_cardname, get_groupname
|
from .utils_user import get_user_nickname, get_user_cardname, get_groupname
|
||||||
from .willing_manager import willing_manager # 导入意愿管理器
|
from .willing_manager import willing_manager # 导入意愿管理器
|
||||||
from .message_base import UserInfo, GroupInfo, Seg
|
from .message_base import UserInfo, GroupInfo, Seg
|
||||||
from ..utils.logger_config import setup_logger, LogModule
|
from ..utils.logger_config import LogClassification, LogModule
|
||||||
|
|
||||||
# 配置日志
|
# 配置日志
|
||||||
logger = setup_logger(LogModule.CHAT)
|
log_module = LogModule()
|
||||||
|
logger = log_module.setup_logger(LogClassification.CHAT)
|
||||||
|
|
||||||
|
|
||||||
class ChatBot:
|
class ChatBot:
|
||||||
|
|||||||
@@ -18,10 +18,11 @@ from ..chat.utils import get_embedding
|
|||||||
from ..chat.utils_image import ImageManager, image_path_to_base64
|
from ..chat.utils_image import ImageManager, image_path_to_base64
|
||||||
from ..models.utils_model import LLM_request
|
from ..models.utils_model import LLM_request
|
||||||
|
|
||||||
from ..utils.logger_config import setup_logger, LogModule
|
from ..utils.logger_config import LogClassification, LogModule
|
||||||
|
|
||||||
# 配置日志
|
# 配置日志
|
||||||
logger = setup_logger(LogModule.EMOJI)
|
log_module = LogModule()
|
||||||
|
logger = log_module.setup_logger(LogClassification.EMOJI)
|
||||||
|
|
||||||
driver = get_driver()
|
driver = get_driver()
|
||||||
config = driver.config
|
config = driver.config
|
||||||
|
|||||||
@@ -19,10 +19,11 @@ from ..chat.utils import (
|
|||||||
)
|
)
|
||||||
from ..models.utils_model import LLM_request
|
from ..models.utils_model import LLM_request
|
||||||
|
|
||||||
from ..utils.logger_config import setup_logger, LogModule
|
from ..utils.logger_config import LogClassification, LogModule
|
||||||
|
|
||||||
# 配置日志
|
# 配置日志
|
||||||
logger = setup_logger(LogModule.MEMORY)
|
log_module = LogModule()
|
||||||
|
logger = log_module.setup_logger(LogClassification.MEMORY)
|
||||||
|
|
||||||
logger.info("初始化记忆系统")
|
logger.info("初始化记忆系统")
|
||||||
|
|
||||||
|
|||||||
@@ -1,71 +1,77 @@
|
|||||||
import sys
|
import sys
|
||||||
from loguru import logger
|
import loguru
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
class LogModule(Enum):
|
class LogClassification(Enum):
|
||||||
BASE = "base"
|
BASE = "base"
|
||||||
MEMORY = "memory"
|
MEMORY = "memory"
|
||||||
EMOJI = "emoji"
|
EMOJI = "emoji"
|
||||||
CHAT = "chat"
|
CHAT = "chat"
|
||||||
|
|
||||||
def setup_logger(log_type: LogModule = LogModule.BASE):
|
class LogModule:
|
||||||
"""配置日志格式
|
logger = loguru.logger.opt()
|
||||||
|
|
||||||
Args:
|
def __init__(self):
|
||||||
log_type: 日志类型,可选值:BASE(基础日志)、MEMORY(记忆系统日志)、EMOJI(表情包系统日志)
|
pass
|
||||||
"""
|
def setup_logger(self, log_type: LogClassification):
|
||||||
# 移除默认的处理器
|
"""配置日志格式
|
||||||
logger.remove()
|
|
||||||
|
Args:
|
||||||
# 基础日志格式
|
log_type: 日志类型,可选值:BASE(基础日志)、MEMORY(记忆系统日志)、EMOJI(表情包系统日志)
|
||||||
base_format = "<green>{time:HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
|
"""
|
||||||
|
# 移除默认日志处理器
|
||||||
chat_format = "<green>{time:HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
|
self.logger.remove()
|
||||||
|
|
||||||
# 记忆系统日志格式
|
# 基础日志格式
|
||||||
memory_format = "<green>{time:HH:mm}</green> | <level>{level: <8}</level> | <light-magenta>海马体</light-magenta> | <level>{message}</level>"
|
base_format = "<green>{time:HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
|
||||||
|
|
||||||
# 表情包系统日志格式
|
chat_format = "<green>{time:HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
|
||||||
emoji_format = "<green>{time:HH:mm}</green> | <level>{level: <8}</level> | <yellow>表情包</yellow> | <cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
|
|
||||||
# 根据日志类型选择日志格式和输出
|
# 记忆系统日志格式
|
||||||
if log_type == LogModule.CHAT:
|
memory_format = "<green>{time:HH:mm}</green> | <level>{level: <8}</level> | <light-magenta>海马体</light-magenta> | <level>{message}</level>"
|
||||||
logger.add(
|
|
||||||
sys.stderr,
|
# 表情包系统日志格式
|
||||||
format=chat_format,
|
emoji_format = "<green>{time:HH:mm}</green> | <level>{level: <8}</level> | <yellow>表情包</yellow> | <cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
|
||||||
# level="INFO"
|
# 根据日志类型选择日志格式和输出
|
||||||
)
|
if log_type == LogClassification.CHAT:
|
||||||
elif log_type == LogModule.MEMORY:
|
self.logger.add(
|
||||||
# 同时输出到控制台和文件
|
sys.stderr,
|
||||||
logger.add(
|
format=chat_format,
|
||||||
sys.stderr,
|
# level="INFO"
|
||||||
format=memory_format,
|
)
|
||||||
# level="INFO"
|
elif log_type == LogClassification.MEMORY:
|
||||||
)
|
|
||||||
logger.add(
|
# 同时输出到控制台和文件
|
||||||
"logs/memory.log",
|
self.logger.add(
|
||||||
format=memory_format,
|
sys.stderr,
|
||||||
level="INFO",
|
format=memory_format,
|
||||||
rotation="1 day",
|
# level="INFO"
|
||||||
retention="7 days"
|
)
|
||||||
)
|
self.logger.add(
|
||||||
elif log_type == LogModule.EMOJI:
|
"logs/memory.log",
|
||||||
logger.add(
|
format=memory_format,
|
||||||
sys.stderr,
|
level="INFO",
|
||||||
format=emoji_format,
|
rotation="1 day",
|
||||||
# level="INFO"
|
retention="7 days"
|
||||||
)
|
)
|
||||||
logger.add(
|
elif log_type == LogClassification.EMOJI:
|
||||||
"logs/emoji.log",
|
self.logger.add(
|
||||||
format=emoji_format,
|
sys.stderr,
|
||||||
level="INFO",
|
format=emoji_format,
|
||||||
rotation="1 day",
|
# level="INFO"
|
||||||
retention="7 days"
|
)
|
||||||
)
|
self.logger.add(
|
||||||
else: # BASE
|
"logs/emoji.log",
|
||||||
logger.add(
|
format=emoji_format,
|
||||||
sys.stderr,
|
level="INFO",
|
||||||
format=base_format,
|
rotation="1 day",
|
||||||
level="INFO"
|
retention="7 days"
|
||||||
)
|
)
|
||||||
|
else: # BASE
|
||||||
return logger
|
self.logger.add(
|
||||||
|
sys.stderr,
|
||||||
|
format=base_format,
|
||||||
|
level="INFO"
|
||||||
|
)
|
||||||
|
|
||||||
|
return self.logger
|
||||||
|
|||||||
Reference in New Issue
Block a user