loguru日志-最新

以往的日志输出,打印的日志输出不在一个log表中

from configparser import ConfigParser # 导入配置文件
from loguru import logger	
from utils.handle_path import *
from time import strftime
class Mylog():
    __instance = None # 用于实现单例模式的私有实例
    __init_flag = True # 控制ini调用,如果调用过就不在调用

    def __new__(cls,*args,**kwargs):  # 定义__new__方法,用于实现单例模式。 

        if not cls.__instance:  # 如果类的实例不存在,  
            cls.__instance = super().__new__(cls) # 创建一个新的实例
            return cls.__instance  # 返回类的实例
    def __init__(self): # 定义__init__方法,用于初始化
        if self.__init_flag: # 如果__init__方法没有被调用过
            __curdate = strftime('%Y%m%d-%H%M') # 获取当前日期时间并格式化
            cfg = ConfigParser()  # 创建一个ConfigParser对象
            cfg.read(config_path+'loguru.ini',encoding='utf-8') # 读取配置文件 ----------------config_path 来自配置文件loguru.ini
            logger.remove(handler_id=None)  # 关闭console输出
            
             # 设置日志的参数,包括存放位置、清理策略、循环规则、输出格式和日志级别。  
            logger.add(logs_path + 'bigdata_' + __curdate + '.log', #-------------------------log_path来自配置文件脚本
                       retention=cfg.get('log', 'retention'),
                       rotation=cfg.get('log', 'rotation'),
                       format=cfg.get('log', 'format'),
                       level=cfg.get('log', 'level'))
            self.__init_flag = False

    def info(self, msg):
        logger.info(msg)

    def warning(self, msg):
        logger.warning(msg)

    def critical(self, msg):
        logger.critical(msg)

    def error(self, msg):
        logger.error(msg)

    def debug(self, msg):
        logger.debug(msg)

log = Mylog()
if __name__ == '__main__':

    log.error('111')

关于# ---------------处 可以看到有config_path / logs_path 一级loguru.ini 这是提前写好的脚本和配置

loguru.ini 文件

[log]
format = {time:YYYY-MM-DD HH:mm:ss},{module}(line:{line}),{level}||{message}
level = ERROR
rotation = 10 MB
retention = 2 days

这是脚本的地方

import os


project_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
project_path1 = os.path.abspath(__file__)
project_path2 = os.path.dirname(os.path.abspath(__file__))


common_path = os.path.join(project_path,'common\'')
test_datas_path = os.path.join(project_path,'testdata\\')
outputs_path = os.path.join(project_path,'outputs\\')
logs_path = os.path.join(outputs_path,'logs\\')
screenshots_path = os.path.join(outputs_path,'screenshots\\')
reports_path = os.path.join(outputs_path,'reports\\')
config_path = os.path.join(project_path,'config\\')



if __name__ == '__main__':
    print(logs_path)
    print(project_path1)
    print(config_path)

posted @ 2023-11-13 18:04  太白之魔童降世  阅读(1)  评论(0)    收藏  举报