# coding=utf-8
import sys
from loguru import logger
import os
from datetime import datetime
import config
def create_logger(platform: str):
"""
初始化日志工具类
:param platform: 平台名称
:param name: 姓名
"""
# 确定日志目录,按月份保存
current_month = datetime.now().strftime("%Y-%m")
log_dir = os.path.join("logs", current_month)
os.makedirs(log_dir, exist_ok=True)
# 确定日志文件名称为当前日的部分
current_day = datetime.now().strftime("%d")
log_file = os.path.join(log_dir, f"{current_day}.log")
logger.remove()
# 文件处理器
logger.add(
log_file,
level=config.LOG_LEVEL,
rotation="1 day", # 每天轮换日志文件
retention="3 months", # 日志保留3个月
encoding="utf-8",
enqueue=True, # 异步写入
backtrace=True, # 显示回溯信息
diagnose=True, # 显示诊断信息
format="{time:YYYY-MM-DD HH:mm:ss} | {level} | "
"{extra[platform]} | {message}"
)
# 控制台处理器
logger.add(
sys.stderr,
level=config.LOG_LEVEL,
format="{time:YYYY-MM-DD HH:mm:ss} | {level} | "
"{extra[platform]} | {message}",
colorize=True
)
# 设置默认的上下文信息
return logger.bind(platform=platform)