"""  
封装log方法  
pip3 install loguru
"""  
import time  
import os,sys  
from loguru import logger  
  
class Logger:  
    """输出日志到文件和控制台"""  
    def __init__(self):  
        # 文件的命名  
        LogPath = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + '/Log'  
        log_name = f"Fast_{time.strftime('%Y-%m-%d', time.localtime()).replace('-', '_')}.log"  
        log_path = os.path.join(LogPath, log_name)  
        self.logger = logger  
        # 清空所有设置  
        self.logger.remove()  
        # 判断日志文件夹是否存在,不存则创建  
        if not os.path.exists(LogPath):  
            os.makedirs(LogPath)  
        # 日志输出格式  
        # 添加控制台输出的格式,sys.stdout为输出到屏幕;关于这些配置还需要自定义请移步官网查看相关参数说明        
        self.logger.add(  
            sys.stdout,  
            format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "  # 颜色>时间  
                   "<cyan>{module}</cyan>.<cyan>{function}</cyan>"  # 模块名.方法名  
                   ":<cyan>{line}</cyan> | "  # 行号  
                   "<level>{level}</level>: "  # 等级  
                   "<level>{message}</level>",  # 日志内容  
        ) 
        # 日志写入文件  
        self.logger.add(
            log_path,  # 写入目录指定文件  
            format='{time:YYYY-MM-DD HH:mm:ss} - '  # 时间  
                   '{module}.{function}:{line} - {level} - {message}',  # 模块名.方法名:行号  
            encoding='utf-8',  
            retention='7 days',  # 设置历史保留时长  
            backtrace=True,  # 回溯  
            diagnose=True,  # 诊断  
            enqueue=True,  # 异步写入  
            rotation="00:00",  # 每日更新时间  
            # rotation="5kb",  # 切割,设置文件大小,rotation="12:00",rotation="1 week"  
            # filter="my_module"  # 过滤模块  
            # compression="zip"   # 文件压缩
        )
  
    def get_logger(self):  
        return self.logger
  
log = Logger().get_logger()
最后修改:2025 年 05 月 28 日
如果觉得我的文章对你有用,请随意赞赏