#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2025/3/18 13:07 # @Author : AngesZhu # @File : logger_utils.py # @Desc : 日志相关操作封装 import os from loguru import logger from datetime import datetime class LoggerManager: def __init__(self, log_dir="../logs", retention="7 days", rotation="10 MB"): """ 初始化日志管理器。 :param log_dir: 日志文件夹路径,默认为 "logs" :param retention: 日志保留时间,默认为 "7 days" :param rotation: 日志文件大小限制,默认为 "10 MB" """ self.log_dir = log_dir self.retention = retention self.rotation = rotation # 确保日志文件夹存在 os.makedirs(self.log_dir, exist_ok=True) # 配置日志 self.configure_logger() def configure_logger(self): """ 配置 loguru 日志记录器。 """ # 定义日志文件名格式(按天生成) log_file_name = f"{datetime.now().strftime('%Y-%m-%d')}_info.log" log_file_path = os.path.join(self.log_dir, log_file_name) # 添加日志处理器 logger.add( log_file_path, format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}", # 标准化日志格式 rotation=self.rotation, # 文件大小限制 retention=self.retention, # 日志保留时间 compression="zip", # 压缩旧日志文件 enqueue=True, # 支持多线程安全 encoding="utf-8" # 编码格式 ) def get_logger(self): """ 获取日志记录器实例。 :return: loguru.logger 实例 """ return logger # 创建全局日志记录器实例 logger_manager = LoggerManager() logger = logger_manager.get_logger() # 记录日志 # logger.debug("这是一个调试信息") # logger.info("这是一个普通信息") # logger.warning("这是一个警告信息") # logger.error("这是一个错误信息") # logger.critical("这是一个严重错误信息") __all__ = ["logger"]