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,供以后的执行时使用。