mirror of
https://github.com/jihe520/MathModelAgent.git
synced 2026-09-19 08:09:48 +08:00
1921f9da0c
add apikeydialog 在网页配置 apikey 不需要再环境变量 update docker file and github action change prompt 跳过问题核验导致不非数学建模问题
59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
import os
|
||
import sys
|
||
import time
|
||
from loguru import logger as _logger
|
||
|
||
|
||
class LoggerInitializer:
|
||
def __init__(self):
|
||
self.log_path = os.path.join(os.getcwd(), "logs")
|
||
self.__ensure_log_directory_exists()
|
||
self.log_path_error = os.path.join(
|
||
self.log_path, f"{time.strftime('%Y-%m-%d')}_error.log"
|
||
)
|
||
|
||
def __ensure_log_directory_exists(self):
|
||
"""
|
||
确保日志目录存在,如果不存在则创建
|
||
"""
|
||
if not os.path.exists(self.log_path):
|
||
os.mkdir(self.log_path)
|
||
|
||
@staticmethod
|
||
def __filter(log: dict):
|
||
"""
|
||
自定义日志过滤器,添加trace_id
|
||
"""
|
||
return log
|
||
|
||
def init_log(self):
|
||
"""
|
||
初始化日志配置
|
||
"""
|
||
# 自定义日志格式
|
||
format_str = (
|
||
"<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | "
|
||
"<level>{level: <8}</level> | "
|
||
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - "
|
||
"<level>{message}</level>"
|
||
)
|
||
_logger.remove()
|
||
# 移除后重新添加sys.stderr, 目的: 控制台输出与文件日志内容和结构一致
|
||
_logger.add(sys.stderr, filter=self.__filter, format=format_str, enqueue=False)
|
||
_logger.add(
|
||
self.log_path_error,
|
||
filter=self.__filter,
|
||
format=format_str,
|
||
rotation="50MB",
|
||
encoding="utf-8",
|
||
enqueue=False,
|
||
compression="zip",
|
||
)
|
||
|
||
return _logger
|
||
|
||
|
||
# 初始化日志处理器
|
||
log_initializer = LoggerInitializer()
|
||
logger = log_initializer.init_log()
|