#encoding=utf-8
import logging
import os
import sys
import time
'''
定义一个时间花销装饰器,用于输出各个程序的运行时间,
同时,将结果写出到日志中
'''
def cost_time(func):
def inner(*argv): # *argv可以处理变长参数的情况,其中,logger对象是最后一个参数
start = time.time()
res = func(*argv)
end = time.time()
logger = argv[-1]
logger.info('total time cost : %.3f seconds' % (end - start))
return res
return inner
@cost_time
def calc(logger):
logger.info('running calc function...')
for i in xrange(10000):
continue
def main():
program = os.path.basename(sys.argv[0]) # 获取程序名
logger = logging.getLogger(program) # 创建一个日志器
logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s') # 设置日志器输出格式
logging.root.setLevel(level=logging.INFO) # 设置日志器输出级别,包括INFO, WARNING, ERROR
logger.info("running %s" % ' '.join(sys.argv)) # 写日志
calc(logger)
main()
原文:https://www.cnblogs.com/zhanzq/p/10881500.html