67 lines
2.1 KiB
Python
67 lines
2.1 KiB
Python
#!/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"] |