# 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)