# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName:   test
# FileName:      __init__.py
# Author:       lin
# Datetime:     2024/12/26 16:41
# Description:
# 
# ---------------------------------------------------------------------------
import functools
import logging
import os
import time

log_path = os.path.join(os.path.join(os.path.join(os.path.dirname(__file__),"report"),"log"),time.strftime("%Y_%m_%d_%H_%M_%S", time.localtime())+".log")
def log_1(log_file):
    """创建日志"""
    logger = logging.getLogger()
    logger.setLevel("INFO")
    handler = logging.FileHandler(log_file, mode="a", encoding="utf-8")
    formatter = logging.Formatter("%(asctime)s - %(levelname)s: %(message)s")
    handler.setFormatter(formatter)
    logger.addHandler(handler)
    return logger

log_2 = log_1(log_path)

"""创建生成器"""
def log(func_name):
    @functools.wraps(func_name)
    def inner(*args, **kwargs):
        try:
            log_2.info(f"执行的功能为:{func_name.__name__},功能的描述为:{func_name.__doc__}, 所在的文件路径为:{func_name.__code__.co_filename}, 所做的行为:{func_name.__code__.co_firstlineno}" )
            res = func_name(*args, **kwargs)
        except Exception as e:
            log_2.error(f"执行的功能为:{func_name.__name__},功能的描述为:{func_name.__doc__}, 所在的文件路径为:{func_name.__code__.co_filename}, 所做的行为:{func_name.__code__.co_firstlineno}, 错误的类型为:{type(e)}, 错误为:{e}")
            raise e
        else:
            return res
    return inner