程序入口日志装饰器

def logger_init(fun):
    """
    日志装饰器
    :return:
    """

    def wrapper(*args, **kargs):
        """
        wrapper
        :return:
        """
        logname = os.path.basename(sys.argv[0])
        fh = logging.FileHandler('{}.log'.format(logname))
        sh = logging.StreamHandler(sys.stdout)
        fmt = "[%(asctime)-15s][%(levelname)s][%(filename)s][%(funcName)s:%(lineno)d]: %(message)s"
        formatter = logging.Formatter(fmt)
        sh.setFormatter(formatter)
        fh.setFormatter(formatter)
        logger.setLevel(logging.DEBUG)
        logger.addHandler(fh)
        logger.addHandler(sh)
        return fun(*args, **kargs)

    return wrapper

基本思想是,在程序主入口处定义一个logger,供以后的执行时使用。

你可能感兴趣的:(程序入口日志装饰器)