ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

关于loguru日志模板并发重复打印修复

2022-06-24 09:33:47  阅读:152  来源: 互联网

标签:log loguru args time path 日志 os logger 模板


直接上模板代码

import os
import sys
import time
from loguru import logger


def creat_time_os():
    creat_time = time.strftime("%Y-%m-%d", time.localtime())

    sys.path.append(os.path.dirname(os.path.abspath(__file__)))

    log_path_dir = os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
    logs_path = os.path.join(log_path_dir, "logs", creat_time)
    if os.path.exists(logs_path):
        return logs_path
    else:
        os.makedirs(logs_path)
        return logs_path


# 提供日志功能
class uru_logger:
    # 去除默认控制台输出
    # logger.remove()

    # 输出日志格式

    def __init__(self):
        logger_format = "{time:YYYY-MM-DD HH:mm:ss,SSS} | {level} | [{thread}]| {file}:{function}(): {line} | - {message}"
        logger.remove()  #这里是不让他重复打印
        logger.add(sys.stderr, #这里是不让他重复打印
                   level="INFO"
                   )
        # 输出到文件,并按天分割和压缩
        logs_path = creat_time_os()
        # 日志文件名:由用例脚本的名称,结合日志保存路径,得到日志文件的绝对路径
        logname = os.path.join(logs_path, sys.argv[0].split('/')[-1].split('.')[0]) + '.log'
        logger.add(
                    logname,
                   encoding="utf-8",
                   format=logger_format,
                   level="INFO",
                   rotation="500MB",
                   retention="5 days",
                   # colorize=True,
                   compression="zip")
        self.creat_time = time.strftime("%Y-%m-%d", time.localtime())
        self.log = logger

    def check_format(self):
        if time.strftime("%Y-%m-%d", time.localtime()) != self.creat_time:
            self.__init__()



uru_logger_log = uru_logger()

def log_info(*args):
    '''
    info log信息
    :param message: 
    :return: 
    '''
    uru_logger_log.check_format()
    uru_logger_log.log.info(args[0] if len(args) == 1 else args)


def log_debug(*args):
    '''
    debug log信息
    :param message: 
    :return: 
    '''
    uru_logger_log.check_format()
    uru_logger_log.log.debug(args[0] if len(args) == 1 else args)


def log_error(*args):
    '''
    error log信息
    :param message: 
    :return: 
    '''
    uru_logger_log.check_format()
    uru_logger_log.log.error(args[0] if len(args) == 1 else args)


标签:log,loguru,args,time,path,日志,os,logger,模板
来源: https://www.cnblogs.com/pythonywy/p/16407599.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有