首页 > 编程语言 > 详细

python装饰器和日志输出

时间:2019-05-17 15:27:24      阅读:137      评论:0      收藏:0      [点我收藏+]
#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()

python装饰器和日志输出

原文:https://www.cnblogs.com/zhanzq/p/10881500.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!