- 新增工具模块 `datetime_utils.py`,用于统一处理UTC和上海时区 - 在 `manager.py`、`models.py` 等后端文件中,将直接操作日期时间的代码替换为工具函数 - 更新前端组件,使用 `dayjs` 进行时区感知的日期格式化和解析 - 移除冗余的日期格式化逻辑,将其集中到工具函数中 - 通过确保所有时间戳均以亚洲/上海时区显示,提升用户体验
54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
import os
|
|
|
|
from loguru import logger as loguru_logger
|
|
|
|
from src.utils.datetime_utils import shanghai_now
|
|
|
|
SAVE_DIR = os.getenv("SAVE_DIR", "saves")
|
|
DATETIME = shanghai_now().strftime("%Y-%m-%d")
|
|
LOG_FILE = f"{SAVE_DIR}/logs/yuxi-{DATETIME}.log"
|
|
|
|
|
|
def setup_logger(name, level="DEBUG", console=True):
|
|
"""使用 loguru 设置日志记录器"""
|
|
os.makedirs(f"{SAVE_DIR}/logs", exist_ok=True) # 创建日志目录
|
|
|
|
# 移除默认的 handler
|
|
loguru_logger.remove()
|
|
|
|
# 添加文件日志(无颜色)
|
|
loguru_logger.add(
|
|
LOG_FILE,
|
|
level=level,
|
|
format="{time:YYYY-MM-DD HH:mm:ss} - {level} - {file}:{line} - {message}",
|
|
encoding="utf-8",
|
|
rotation="10 MB", # 文件大小达到 10MB 时轮转
|
|
retention="30 days", # 保留30天的日志
|
|
compression="zip", # 压缩旧日志文件
|
|
)
|
|
|
|
# 添加控制台日志(有颜色)
|
|
if console:
|
|
loguru_logger.add(
|
|
lambda msg: print(msg, end=""),
|
|
level=level,
|
|
format=(
|
|
"<green>{time:MM-DD HH:mm:ss}</green> "
|
|
"<level>{level}</level> "
|
|
"<cyan>{file}:{line}</cyan>: "
|
|
"<level>{message}</level>"
|
|
),
|
|
colorize=True,
|
|
)
|
|
|
|
return loguru_logger
|
|
|
|
|
|
# 设置根日志记录器
|
|
logger = setup_logger("Yuxi")
|
|
|
|
__all__ = ["logger"]
|
|
|
|
# If you want to disable logging from external libraries
|
|
# logging.getLogger('some_external_library').setLevel(logging.CRITICAL)
|