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

打印 上一主题 下一主题

主题 491|帖子 491|积分 1473

直接上模板代码
  1. import os
  2. import sys
  3. import time
  4. from loguru import logger
  5. def creat_time_os():
  6.     creat_time = time.strftime("%Y-%m-%d", time.localtime())
  7.     sys.path.append(os.path.dirname(os.path.abspath(__file__)))
  8.     log_path_dir = os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
  9.     logs_path = os.path.join(log_path_dir, "logs", creat_time)
  10.     if os.path.exists(logs_path):
  11.         return logs_path
  12.     else:
  13.         os.makedirs(logs_path)
  14.         return logs_path
  15. # 提供日志功能
  16. class uru_logger:
  17.     # 去除默认控制台输出
  18.     # logger.remove()
  19.     # 输出日志格式
  20.     def __init__(self):
  21.         logger_format = "{time:YYYY-MM-DD HH:mm:ss,SSS} | {level} | [{thread}]| {file}:{function}(): {line} | - {message}"
  22.         logger.remove()  #这里是不让他重复打印
  23.         logger.add(sys.stderr, #这里是不让他重复打印
  24.                    level="INFO"
  25.                    )
  26.         # 输出到文件,并按天分割和压缩
  27.         logs_path = creat_time_os()
  28.         # 日志文件名:由用例脚本的名称,结合日志保存路径,得到日志文件的绝对路径
  29.         logname = os.path.join(logs_path, sys.argv[0].split('/')[-1].split('.')[0]) + '.log'
  30.         logger.add(
  31.                     logname,
  32.                    encoding="utf-8",
  33.                    format=logger_format,
  34.                    level="INFO",
  35.                    rotation="500MB",
  36.                    retention="5 days",
  37.                    # colorize=True,
  38.                    compression="zip")
  39.         self.creat_time = time.strftime("%Y-%m-%d", time.localtime())
  40.         self.log = logger
  41.     def check_format(self):
  42.         if time.strftime("%Y-%m-%d", time.localtime()) != self.creat_time:
  43.             self.__init__()
  44. uru_logger_log = uru_logger()
  45. def log_info(*args):
  46.     '''
  47.     info log信息
  48.     :param message:
  49.     :return:
  50.     '''
  51.     uru_logger_log.check_format()
  52.     uru_logger_log.log.info(args[0] if len(args) == 1 else args)
  53. def log_debug(*args):
  54.     '''
  55.     debug log信息
  56.     :param message:
  57.     :return:
  58.     '''
  59.     uru_logger_log.check_format()
  60.     uru_logger_log.log.debug(args[0] if len(args) == 1 else args)
  61. def log_error(*args):
  62.     '''
  63.     error log信息
  64.     :param message:
  65.     :return:
  66.     '''
  67.     uru_logger_log.check_format()
  68.     uru_logger_log.log.error(args[0] if len(args) == 1 else args)
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表